2024-10-05-동국대SW역량강화캠프-4681. 좌표 압축
문제
N개의 수X1,X2,…,XN이 주어집니다.
이 수들을 좌표압축하여 X′1,X′2,…,X′N로 바꾸어 출력하는 것이 목적입니다.
X′i는 X 내부에서 Xi 보다 작은 수의 종류 가짓수로 정의합니다.
입력
첫 줄에 N이 주어집니다(N≤1,000,000) 둘째 줄에 X1, X2, …, XN가 공백을 이에 고 주어집니다. Xi는 절대값이 10억 이하인 정수입니다.
출력
첫 줄에 좌표압축한 결과 X′1,X′2,…,X′N를 공백을 사이에 두고 출력합니다.
예제 1 입력
5
2 4 -10 4 -9
예제 1 출력
2 3 0 3 1
예제 2 입력
6
1000 999 1000 999 1000 999
예제 2 출력
1 0 1 0 1 0
Source
n = int(input())
arr = list(map(int, input().split()))
tmp = arr
tmp = set(tmp)
tmp = list(tmp)
tmp.sort()
dic = {}
for i in range(len(tmp)):
if tmp[i] not in dic:
dic[tmp[i]] = i
for i in range(n):
arr[i] = dic[arr[i]]
print(*arr)