백준 18870 좌표 압축

김민영·2023년 1월 20일
0

알고리즘

목록 보기
83/125

과정

  • 입력 받은 수를 정렬해서
  • 딕셔너리에 인덱스 값을 저장하고
  • 다시 입력 받은 배열을 순회하며 딕셔너리를 참고하여 위치 값을 출력한다.
N = int(input())
lst = list(map(int, input().split()))
n_lst = list(lst)
n_lst.sort()

dic = {}
j = 0
for i in n_lst:
    if i not in dic:
        dic[i] = j
        j += 1
for i in lst:
    print(dic[i], end=" ")
  • 원래 딕셔너리에 있는지 확인해서 없으면 인덱스를 넣고, 있으면 출력하는 방식으로 했는데, 이는 있는지 확인하는 과정에서 의미없는 순회를 하고 있어서 시간초과가 발생했었다.
profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글