https://www.acmicpc.net/problem/18870
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~ 값으로 채운다.
이후 딕셔너리 특성을 활용해 출력만 해주면 된다!
'Algorithm > Problems' 카테고리의 다른 글
[백준/파이썬] 2798번 블랙잭 (0) | 2022.11.10 |
---|---|
[백준/파이썬] 25501번 재귀의 귀재 (0) | 2022.11.09 |
[백준/파이썬] 10814번 나이순 정렬 (0) | 2022.11.09 |
[백준/파이썬] 1181번 단어 정렬 (0) | 2022.11.09 |
[백준/파이썬] 11651번 좌표 정렬하기2 (0) | 2022.11.08 |