본문 바로가기

BOJ/정렬

BOJ : 11870 좌표압축 (파이썬)

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