코딩테스트/BOJ

[백준][정렬] 18870. 좌표 압축

박소민 2024. 1. 10. 22:56
18870. 좌표 압축
 

18870번: 좌표 압축

수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에

www.acmicpc.net

 

 

  • 풀이
    • set() 에서 정렬한 후 나보다 작은 것의 개수는 내 index 값이랑 같다
    • list.index(i)의 형태는 시간복잡도 O(N)
    • dict[i] → O(1)
n = int(input())
lst = list(map(int, input().split()))
tmp = sorted(set(lst))
result = {}
for i in range(len(tmp)):
    result[tmp[i]] = len(tmp[:i])

for l in lst:
    print(result[l], end=' ')