BOJ10989-수 정렬하기 3 (python3)

Ok Haeeun·2023년 2월 9일
0

Python3로 algorithm문풀

목록 보기
12/53

import sys

n = int(sys.stdin.readline())
numberList= [0]*10001

for i in range(n):
    numberList[int(sys.stdin.readline())] += 1

for i in range(len(numberList)):
    if numberList[i] != 0:
        for _ in range(numberList[i]):
            print(i)

오늘 풀이로부터 배운게 많았다.

list에 요소를 추가할 때 append를 사용하면 메모리를 재할당하는 과정에서 효율적이지 못하다고 한다.

(1) 기존의 input() => sys.stdin.readline()
으로 입력 받기

(2) 입력으로 받는 수의 범위가 10,000정도로 별로 크지 않으니 그만큼의 공간을 미리 할당해놓고 인덱스에 해당하는 값이 입력을 받았을 경우 입력받은 개수만큼 인덱스에 저장해두는 방식을 이용하기

가 이번 문제의 핵심 접근 방식인 것 같다.
시간적/공간적으로 효율적인 정렬 방식이므로 잘 기억해두기!
앞으로 입력은 sys.stdin.readline()으로 받아야겠다.

profile
tistory에 이어서 기록합니다 👉 https://i-m-okay.tistory.com/

0개의 댓글

관련 채용 정보