Today
Total
01-07 16:13
관리 메뉴

홍우진의 개발 일기장

[백준] 18870번: 좌표 압축 / 파이썬 본문

알고리즘/백준

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

홍우진 2024. 12. 31. 16:43
728x90
반응형

문제 링크


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

풀이 코드


n = int(input())
x = list(map(int,input().split()))

num = list(set(x)) #중복 제거
num.sort()

d = {}

for i in range(len(num)): 
    d[num[i]] = i # {-10: 0, -9: 1, 2: 2, 4: 3}

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

코드 해석


우선 좌표 압축이란 좌표를 보기 쉽게 크기순으로 출력해 주는 것이다.

예시를 들자면 [3, -1, 100]을 [1, 0, 2]로 바꾸는 것이다.

 

먼저 set을 사용하여 중복을 지워주고 다시 list로 바꿔준다. 

그 후 정렬해 주고 딕셔너리를 사용하여 좌표에 순서를 매칭시킨다.

 

마지막으로 출력 시, 딕셔너리에 있는 value값을 불러오면 끝.

 

딕셔너리 매칭 부분이 쫌 머리 아팠다.

난이도: ★★

728x90
반응형
Comments