[파이썬]백준 18870 좌표압축

Byeonghyeon Kim·2021년 5월 2일
0

알고리즘문제

목록 보기
68/93
post-thumbnail

링크

백준 18870 좌표압축


가장 작은 숫자를 0으로 하고 오름차순으로 +1씩 더해주며 출력하면 된다. 단, 같은 순자는 같은 값을 갖는다.

이를 구현하기 위해 set을 이용해 중복을 제거하고(같은 순서를 갖기 때문에), 리스트로 재변환해 정렬시켜줬다. 그 후 딕셔너리를 이용해 순서를 넣어준 후 이를 이용해 답을 출력했다.


정답 코드

import sys; input = sys.stdin.readline

N = int(input())
arr = list(map(int, input().split()))
rank_arr = sorted(list(set(arr)))
ans_dic = {}

for i in range(len(rank_arr)):
    ans_dic[rank_arr[i]] = i

for i in range(N):
    arr[i] = ans_dic[arr[i]]

print(*arr)

알게된 것👨‍💻

  • 좌표압축 이라는 단어에 매몰되는 것이 아니고 핵심을 파악할것
profile
자기 주도 개발전 (개발, 발전)

0개의 댓글