반응형
문제
https://www.acmicpc.net/problem/18870
코드
import sys
input = sys.stdin.readline
n = int(input())
num = list(map(int, input().split()))
numset = sorted(set(num))
dic = {numset[i]: i for i in range(len(numset))}
for i in num:
print(dic[i], end=' ')
설명
우선 입력을 받아준 뒤,
set을 통해서 중복값을 제거한 넘버 리스트를 하나 생성한다.
이후 딕셔너리를 통해서 numset의 인덱스를 설정해 준다.
이렇게 되면 나온 숫자에 따라서 인덱스를 통해 좌표를 압축한 정렬이 가능해진다.
인덱스에 따라 num 값에 맞춰서 출력을 해주면 된다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 10870: 피보나치 수 5 (0) | 2023.01.13 |
---|---|
[파이썬, Python] 백준 10872: 팩토리얼 (0) | 2023.01.12 |
[파이썬, Python] 백준 10814: 나이순 정렬 (0) | 2023.01.10 |
[파이썬, Python] 백준 1181: 단어 정렬 (0) | 2023.01.08 |
[파이썬, Python] 백준 11651: 좌표 정렬하기 2 (0) | 2023.01.07 |