본문 바로가기
Beakjoon&프로그래머스/파이썬

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

by 현장 2022. 1. 21.

-코드

n = int(input())
x = list(map(int, input().split()))
X = sorted(list(set(x)))
dic = {X[i]: i for i in range(len(X))}
for i in x:
    print(dic[i], end=' ')

좌표 압축이 뭔지 몰라 찾아보니 해당 값들의 크기별로 순서를 매겨서 그 값을 원래 리스트의 순서대로 출력하는 것이었습니다. 그래서 처음에 for문을 2개 연속으로 사용하여 입출력을 맞췄으나 시간 초과가 나서 해결법을 찾아보니 제가 쓰던 코드가 O(n)이고 딕셔너리를 사용하면 O(1)이어서 되는 것을 알게 되어 해결을 했습니다.