상세 컨텐츠

본문 제목

[백준/파이썬]18870번 좌표 압축

알고리즘 문제풀이

by 한백인데용 2023. 6. 6. 21:30

본문

728x90
반응형

 

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

 

18870번: 좌표 압축

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

www.acmicpc.net

 

정답

n = int(input())

num = list(map(int,input().split()))
num2 = list(set(num))
num2.sort()


num_dict = {}
for i in range(len(num2)) :
    num_dict[num2[i]] = i

answer=[]
for i in num :
    answer.append(str(num_dict[i]))

a = ' '.join(c for c in answer)
print(a)

 

그냥 생각 나는 대로 짜다 보니 너무 대충 짠 것 같다.

 

문제는 쉬웠다.

쉬운 문제를 어렵게 설명해둔 문제 같았다.

 

예시입력

2 4 -10 4 -9

 

문제는

2보다 작은 값 : -10, -9 (2개)

4보다 작은 값 : -10, -9, 2 (3개)

-10보다 작은 값 : 없음 (0개)

-9보다 작은 값 : -10 (1개)

 

{2 : 2, 2 : 4, -10 : 0, -9 : 1}

이렇게 딕셔너리로 저장 후

 

각 값을 key값으로 해서 value값을 출력해 주면 된다.

 


good

728x90
반응형

관련글 더보기