[Boj] 좌표압축 18870(python)
문제링크 : https://www.acmicpc.net/problem/18870
원소의 갯수 N과 좌표 압축하는 리스트 numbers가 주어진다.
먼저, 중복되는 원소를 set(numbers)를 통해 없애주고,
리스트로 변환하고 정렬한다.
이를 enumerate를 이용하여 리스트의 원소를 키로 리스트의 인덱스를 값으로 하는 딕셔너리를 만든다.
이를 이용해, 원래 리스트를 압축한다.
이 방법은 입력된 원소가 굉장히 많으면서 원소 간의 순서를 결정해야 할 때 주로 사용된다.
N = int(input())
numbers = list(map(int, input().split()))
set_numbers = list(set(numbers))
dict_idx = {}
set_numbers.sort()
for idx, val in enumerate(set_numbers):
dict_idx[val] = idx
for num in numbers:
print(dict_idx[num], end=' ')
댓글남기기