백준(BOJ) - 좌표 압축(18870번) - 파이썬(python)
2023. 2. 8. 23:29ㆍ코딩테스트/백준(BOJ)
문제
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.
Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다.
X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.
입력
첫째 줄에 N이 주어진다.
둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.
출력
첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다.
제한
- 1 ≤ N ≤ 1,000,000
- -109 ≤ Xi ≤ 109
import sys
n=int(input().rstrip())
arr=list(map(int,input().split()))
tmp=set(arr)
arr_sort=sorted(list(tmp))
idx_a=dict()
for i in range(len(arr_sort)):
idx_a[arr_sort[i]]=i
for val in arr:
print(idx_a[val],end=' ')
728x90
'코딩테스트 > 백준(BOJ)' 카테고리의 다른 글
백준(BOJ) - 구간 합 구하기 5(11660번) - 파이썬(python) (0) | 2023.02.11 |
---|---|
백준(BOJ) - 나머지 합(10986번) - 파이썬(python) (0) | 2023.02.11 |
백준(BOJ) - 인간-컴퓨터 상호작용(16139번) - 파이썬(python) (0) | 2023.02.08 |
백준(BOJ) - 수열 (2559번) - 파이썬(python) (0) | 2023.02.07 |
백준(BOJ) - 구간 합 구하기 4(11659번) - 파이썬(python) (0) | 2023.02.07 |