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

뚝딱이 공학도·2022년 4월 23일
0

문제풀이_백준

목록 보기
122/159



문제



나의 답안

import sys
input = sys.stdin.readline

n=int(input())
arr=list(map(int,input().split()))
arr_n=sorted(set(arr))#중복을 제거한 정렬된 새 배열
#중복되는 수가 있다면 값이 커지게 되므로 중복을 제거해주어야 함

dic={arr_n[i]: i for i in range(len(arr_n))}#딕셔너리:인덱스
#(key:value),(입력받은 값,인덱스 값)

for i in arr:#arr에 해당하는 딕셔너리 value값 반환
    print(dic[i], end=' ')

접근 방법

  • 작은 수 순서대로 정렬한 후 인덱스 값을 개수로 센다.
  • 다만, 이렇게 하면 같은 숫자가 있을 경우 값이 커지게 되므로 중복을 제거해주어야 한다.
  • 딕셔너리를 생성해 준 후 입력받은 숫자에 해당하는 value값을 반환해준다.

0개의 댓글