Algorithm/Problems
[백준/파이썬] 18870번 좌표 압축
공부좀하시졍
2022. 11. 9. 11:40
https://www.acmicpc.net/problem/18870
18870번: 좌표 압축
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌
www.acmicpc.net
import sys
read = sys.stdin.readline
n = int(read())
dots = list(map(int, read().split()))
pressed = sorted(list(set(dots)))
dic = {pressed[i] : i for i in range(len(pressed))}
for i in dots:
print(dic[i], end=' ')
문제 이해조차 되지 않아서 검색을 해보았다...
입력된 좌표가 아래와 같다면 크기가 작은 것부터 0 1 2 3 ~ 으로 나타내야 하는 것이다.
2 4 -10 4 -9
우선, set함수를 이용해 중복 제거 및 정렬한 후 딕셔너리를 이용해 key는 좌표 값, value는 0~ 값으로 채운다.
이후 딕셔너리 특성을 활용해 출력만 해주면 된다!