[Python] 백준18870 좌표 압축
문제
예제 입력
코드
import sys
n = int(input())
arr = list(map(int, sys.stdin.readline().split()))
res = sorted(set(arr))
dict_res = { res[i]:i for i in range(len(res)) }
for i in arr:
print(dict_res[i], end=" ")
설명
파이썬을 통해서 사용자로부터 입력받아 자료형 set으로 중복을 제거한 후에 list로 정렬하고 dict로 숫자마다의 순위를 지정하여 좌표 압축를 구현했습니다.
정리
import sys
n = int(input())
arr = list(map(int, sys.stdin.readline().split()))
res = sorted(set(arr))
for i in arr:
print(res.index(i), end=" ")
처음에는 자료형 list로 정렬하여 해당 인덱스를 출력하게 했으나 시간 초과가 발생했습니다.