코딩하는 해맑은 거북이

[Python] 좌표 압축 - 백준 본문

코딩테스트

[Python] 좌표 압축 - 백준

#CJE 2023. 1. 5.
해당 글은 백준 18870번 문제 '좌표 압축'을 다룬다.

문제

https://www.acmicpc.net/problem/18870

 

18870번: 좌표 압축

수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌

www.acmicpc.net

 

설명

해당 문제는 입력받은 좌표를 중복을 제거한 후, 오름차순으로 정렬한 인덱스 값을 반환하면 된다.

이때 리스트의 index 함수를 사용하면 시간초과가 뜨므로 딕셔너리 자료구조를 이용하면 쉽게 해결할 수 있다.

 

코드

n = int(input())
arr = list(map(int, input().split()))
arr2 = sorted(list(set(arr)))
dict1 = {}
for i in range(len(arr2)):
    dict1[arr2[i]]=i
for i in range(n):
    print(dict1[arr[i]], end=' ')

     

 

 

Comments