Python/백준 python

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

CE : 하랑 2022. 3. 14. 11:08

 

 

 

문제

 

수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.

Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다.

X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.

 

 

 

입력

 

첫째 줄에 N이 주어진다.

둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.

ex)

5
2 4 -10 4 -9
6
1000 999 1000 999 1000 999

 

 

 

출력

 

첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다.

ex)

2 3 0 3 1
1 0 1 0 1 0

 



 

코드

 

import sys

n=sys.stdin.readline()
num1=list(map(int,input('').split()))
num2=sorted(list(set(num1)))

num3={num2[i] : i for i in range(len(num2))}

for i in num1:
    print(num3[i],end=' ')