백준

[백준] 18870번: 좌표 압축 (파이썬)

초코바나나쉐이크 2024. 11. 30. 01:28

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

 

x좌표상에서 여러 좌표들을 입력받고, 해당 좌표보다 작은 좌표들을 차례대로 출력하면 되는 문제였다.

arr에 좌표들을 입력받고, 얕은 복사를 한 후 set으로 변환 후 다시 정렬된 리스트로 sorted_arr에 저장한다.

이후 딕셔너리를 이용하여 sorted_arr의 값들을 저장하고, arr의 값들을 하나씩 불러와서 해당 값보다 작은 값이 몇 개인지 출력한다.

num = int(input())
arr = list(map(int,input().split()))

sorted_arr = arr[:]

sorted_arr = set(sorted_arr)
sorted_arr = sorted(sorted_arr) #중복 제거

dic = {}
for i in range(len(sorted_arr)):
    dic[str(sorted_arr[i])] = i

for el in arr:
    print(dic[str(el)], end=' ')

처음엔 index로 풀려고 했다가 시간 초과가 떴다.