잡다로그

[Python/코테] 백준 18870 좌표 압축 본문

Algorithm

[Python/코테] 백준 18870 좌표 압축

날으는다람쥐 2023. 12. 4. 17:20

18870 좌표압축

문제 및 조건 설명: https://www.acmicpc.net/problem/18870

알고리즘 설계

중복을 제거하고 본인보다 작은 원소의 갯수를 출력

알고리즘 구현

import sys
from bisect import bisect_left

n = int(sys.stdin.readline().strip())
array = list(map(int, sys.stdin.readline().split()))

no_duplicate = list(set(array))
no_duplicate.sort()

result = [0] * n

for i in range(len(array)):
    # no_duplicate의 인덱스가 곧 자신보다 작은 수의 갯수
    print(bisect_left(no_duplicate, array[i]), end=' ')
    
    # result 배열을 만들어서 append한 뒤 reault를 출력하는 것이 시간이 조금 더 빠르네?

나다어

  • 중복 제거를 위해 set 자료형을 활용한다.
  • 특정 원소의 인덱스를 찾기 위해서 내장 함수 bisect_left (또는 bisect_right)를 활용한다.

 

 

Comments