[백준 18870번-파이썬] 좌표 압축
알고리즘 공부/BOJ백준 풀이

[백준 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를 출력하면 됩니다.