18870 풀이

    [백준 18870번-파이썬] 좌표 압축

    http://acmicpc.net/problem/18870 {코드} n = int(input()) org = tuple(map(int, input().split())) ans = {k: i for i, k in enumerate(sorted(set(org)))} [print(ans[k], end=' ') for k in org] {설명} 압축될 숫자는 결국 주어진 값들을 정렬했을 때 그 숫자의 인덱스와 같습니다. 여기서 수들을 중복없이 정렬해야하기에 집합으로 만든 후 정렬하고 값을 키, 값의 인덱스를 value로 해서 딕셔너리를 생성합니다. 이후 각 값에 대해 딕셔너리에서의 value를 출력하면 됩니다.