-코드
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)이어서 되는 것을 알게 되어 해결을 했습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[프로그래머스/파이썬] 124 나라의 숫자 (0) | 2022.01.22 |
---|---|
[백준/파이썬] 2975번 Transactions (0) | 2022.01.22 |
[백준/파이썬] 24309번 РАВЕНСТВО (0) | 2022.01.21 |
[백준/파이썬] 11286번 절댓값 힙 (0) | 2022.01.20 |
[백준/파이썬] 15751번 Teleportation (0) | 2022.01.20 |