[BOJ] 10989. 수 정렬하기 3

Jimeaning·2023년 4월 2일
0

코딩테스트

목록 보기
45/143

Python3

문제

입출력

입출력 예시

주요 포인트

for 문에서 append를 하면 메모리 재할당이 이루어져 메모리 초과가 뜬다.

따라서 입력값이 10000개가 주어질 수 있으므로 길이가 10001인 리스트를 만든다. 리스트에는 0으로 채워 놓고 입력값을 받을 때마다 해당하는 입력값에 1씩 더해준다.

입력을 다 받으면 0이 아닌 숫자가 들어있는 인덱스만을 출력한다.

최종 코드

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

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

for i in range(10001):
    if num_list[i] != 0:
        for j in range(num_list[i]):
            print(i)
   

피드백

메모리 사용에 대해 학습할 수 있는 문제였다.
리스트에 입력값 최대 크기만큼 0으로 채워놓고 입력값에 해당하는 인덱스에 +1씩 하는 것이 포인트였다.

profile
I mean

0개의 댓글