알고리즘/백준
[백준] 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
반응형