[10989번] 수 정렬하기 3

HYEOB KIM·2022년 5월 22일
0

algorithm

목록 보기
8/44
post-custom-banner

백준 10989번 수 정렬하기 3

코드 풀이

  • 카운팅 정렬을 이용하여 문제를 해결할 수 있습니다.
  • 카운팅 정렬은 정렬 원소의 숫자가 크지 않을 때 사용할 수 있습니다.
  • 정렬 원소의 숫자가 크다면 메모리를 많이 잡아먹기 때문에 비효율적입니다.

메모리 초과

n = int(input())

num = [int(input()) for _ in range(n)]
count = [0] * (max(num) + 1)

for i in range(n):
    count[num[i]] += 1

for i in range(1, len(count)):
    for j in range(count[i]):
        print(i)

시간 초과

  • 입력 변수를 위한 리스트 변수를 만들어줄 필요가 없었습니다.
n = int(input())

count = [0] * (10001)

for i in range(n):
    count[int(input())] += 1

for i in range(1, len(count)):
    for j in range(count[i]):
        print(i)

정답

  • 단순히 input으로 입력을 받는 것이 아닌 sys 모듈을 이용했습니다.
import sys

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

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

for i in range(1, len(count)):
    for j in range(count[i]):
        print(i)
profile
Devops Engineer
post-custom-banner

0개의 댓글