코딩하는 해맑은 거북이
[Python] 좌표 압축 - 백준 본문
해당 글은 백준 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=' ')
'코딩테스트' 카테고리의 다른 글
[Python] 스택 수열 - 백준 (0) | 2023.01.09 |
---|---|
[Python] 미로 만들기 - 백준 (0) | 2023.01.06 |
[Python] 카드 구매하기 - 백준 (DP) (0) | 2023.01.05 |
[Python] 스타트와 링크 - 백준 (DFS) (0) | 2023.01.04 |
[Python] 거스름돈 - 프로그래머스 (DP) (0) | 2023.01.04 |
Comments