[Python] BOJ: 10989 수 정렬하기 3

Binsu·2021년 9월 22일
0

Algorithms

목록 보기
17/22

문제

접근 방법

문제만 봤을 때 되게 간단해 보이지만, 생각보다 까다로운 문제였다.
처음에는 list로 for문을 돌리며 append() 해주고 sort() 함수로 정렬한 뒤, 리스트 원소를 반복문으로 출력하는 방식으로 접근했다. 메모리 제한이 8MB이기 때문에 당연히 메모리 초과가 났다.
반복문이 돌며 input()이 들어오면 해당 인덱스에 1을 더해주고, 이후 해당 인덱스의 개수만큼 출력하는 트릭이 필요했다.

풀이

import sys

input = sys.stdin.readline

N = int(input())
li = [0] * 10001

for i in range(N):
    li[int(input().strip())] += 1

for i in range(len(li)):
    if li[i]:
        for j in range(li[i]):
            print(i)

0개의 댓글