728x90
소스코드
import sys
n = int(sys.stdin.readline())
lst = list(map(int,sys.stdin.readline().split()))
s = sorted(lst)
dict = {}
a=0
for i in s :
if(dict.get(i) == None) :
dict[i] = a
a+=1
for i in lst :
print(dict[i],end=' ')
풀이
딕셔너리를 구현해서 정렬된 리스트 (오름차순)을 순회 하면서 존재하지 않으면 0부터 숫자를 value값에 넣어줌으로서 답을 얻을 수 있습니다.
딕셔너리.get(i) 가 존재하지 않을때 None 을 리턴해주는 것을 기억해야겠다!
문제
https://www.acmicpc.net/problem/18870
18870번: 좌표 압축
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌
www.acmicpc.net
728x90
'BOJ > 정렬' 카테고리의 다른 글
BOJ : 1931 회의실 배정 (JS , nodeJS) (0) | 2023.01.20 |
---|---|
BOJ : 2108 통계학 (파이썬) (0) | 2022.12.02 |
BOJ : 1461 도서관 (파이썬) (0) | 2022.11.20 |
BOJ : 1927 최소힙 (파이썬) (1) | 2022.09.11 |
BOJ : 20291 파일정리 (파이썬) (2) | 2022.09.10 |