홍우진의 개발 일기장
[백준] 18870번: 좌표 압축 / 파이썬 본문
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
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 25206번: 너의 평점은 / 파이썬 (0) | 2025.01.02 |
---|---|
[백준] 9375번: 패션왕 신해빈 / 파이썬 (2) | 2025.01.01 |
[백준] 25192번: 인사성 밝은 곰곰이 / 파이썬 (0) | 2024.12.30 |
[백준] 2851번: 슈퍼 마리오 / 파이썬 (0) | 2024.12.29 |
[백준] 13909번: 창문 닫기 / 파이썬 (0) | 2024.12.28 |
Comments