코딩테스트 대비/단계별 코딩 테스트 준비(27일 과정)

[정렬/Python] 18870번: 좌표 압축 - 효과는 굉장했다!

bluetag_boy 2022. 2. 11. 21:17
반응형
 

18870번: 좌표 압축

수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌

www.acmicpc.net

 

알고리즘 분류

  • 정렬
  • 값 / 좌표 압축

 

 

SOLUTION

import sys

N = int(sys.stdin.readline())
num = list(map(int, sys.stdin.readline().split()))
num_list = list(sorted(set(num))) # set을 사용해 중복된 수 제거
num_list = {num_list[i] : i for i in range(len(num_list))} # 작은 수 부터 순서를 dictionary형태로 매긴다
print(*[num_list[i] for i in num]) # *을 이용해 unpacking해 출력