Computer Science/알고리즘

[백준 - Python] 18870 - 좌표 압축

바보1 2023. 5. 11. 13:46

0.  문제 링크

 

 

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

 

18870번: 좌표 압축

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

www.acmicpc.net


1.  풀이 방법

 

 

  1. 중복 제거를 위하여 세트로 정렬한다.
  2. 각 번호의 인덱스가 압축된 좌표의 번호가 된다.
  3. 그대로 출력하면 끝

2.  코드

 

 

import sys
input = sys.stdin.readline


if __name__ == "__main__":
    n = int(input())
    maps = list(map(int, input().split()))

    new_maps = sorted(set(maps))
    d = dict()

    for idx, item in enumerate(new_maps):
        d[item] = idx

    for i in maps:
        print(d[i], end=' ')

3.  마무리

 

 

간단한 문제