18870번: 좌표 압축

김도형·2022년 10월 25일
0

출처 : https://www.acmicpc.net/problem/18870


문제 요약

수직선 위에 N개의 좌표가 주어지는데, 이 좌표에 좌표 압축을 적용한다.
ex) x1의 좌표를 압축한 x'1의 값은 xi > xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다.


접근 방식

import sys
n = int(input())
nums = list(map(int, sys.stdin.readline().split()))
nums_set = list(set(nums))
nums_set.sort()

dic = {}
for i in range(len(nums_set)):
    dic[nums_set[i]] = i

for i in nums:
    print(dic[i], end=' ')

set()함수를 사용하여 중복을 제거해주고 정렬을 해준다. 순차적으로 접근하여 hash table에 저장해준다. 그리고 주어진 N개의 좌표를 돌면서 해당 좌표보다 작은 수의 개수를 출력해준다.

profile
예비 FE 개발자

0개의 댓글