문제 링크
https://www.acmicpc.net/problem/18870
18870번: 좌표 압축
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌
www.acmicpc.net
문제 해설
Idea
- Sort
- 집합을 통해 압축한 unique한 좌표 목록을 정렬시키고,
정렬된 리스트 내에서 좌표와 인덱스를 딕셔너리로 맵핑
Time Complexity
- O(N Log N) = 13,000,000
Data Size
- N: 1 <= int <= 1,000,000
- X: -10^9 <= int <= 10^9
해설 코드
N = int(input())
X = list(map(int, input().split()))
xtoi = {x:i for i,x in enumerate(sorted(set(X)))}
print(' '.join(map(lambda x: str(xtoi[x]), X)))
'Tech > Algorithm' 카테고리의 다른 글
[백준 7569] 토마토 (Python) (0) | 2022.08.25 |
---|---|
[백준 7576] 토마토 (Python) (0) | 2022.08.24 |
[백준 1931] 회의실 배정 (Python) (0) | 2022.08.23 |
[백준 15686] 치킨 배달 (Python) (0) | 2022.08.23 |
[백준 1927] 최소 힙 (Python) (0) | 2022.08.22 |