티스토리 뷰
728x90
https://www.acmicpc.net/problem/18870
- 문제 :
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.
Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다.
X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.
- 풀이 :
다른 값들중 내 값보다 작은 값이 몇 개 존재하는지 찾는 문제이다. dictionary를 사용하면 쉽게 해결할 수 있다.
- 소스코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import sys
input = sys.stdin.readline
if __name__ == "__main__":
N = int(input())
l = list(map(int,input().split()))
L = sorted(l)
D = dict()
for i in l:
D[i] = 0
prev = L[0]
for i in range(1,len(L)):
if L[i] != prev:
D[L[i]] = D[prev]+1
else:
D[L[i]] = D[prev]
prev = L[i]
for i in l:
print(D[i],end= ' ')
|
cs |
320x100
'Algorithm > String' 카테고리의 다른 글
(Python/파이썬) - 백준(BOJ) 1316번 : 그룹 단어 체커 (0) | 2022.04.14 |
---|---|
(Python) - BOJ(1032번) : 명령 프롬프트 (0) | 2022.03.02 |
(Python) - BOJ(2607번) : 비슷한 단어 (0) | 2022.02.18 |
(C++) - BOJ(1427번) : 소트인사이드 (0) | 2022.01.26 |
(Python) - BOJ(1120번) : 문자열 (0) | 2022.01.25 |
댓글
© 2022 WonSeok, All rights reserved