Python/알고리즘 문제풀이

[백준][파이썬] 10989번 수 정렬하기 3

gakko 2022. 2. 8. 09:51

백준 온라인저지 10989번 수 정렬하기 3

문제풀러 바로가기👇👇👇👇👇👇

https://www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

 

문제풀이


자세히 보면 메모리 제한이 8MB인 반면 시간제한은 널널하다.

sort() 함수를 사용하면 메모리제한을 넘기기 때문에  계수정렬 을 사용해야한다.

 

import sys
cnt = [0] * 10000

n = int(sys.stdin.readline())

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

for i in range(10000):
    if cnt[i] != 0:
        for j in range(cnt[i]):
            print(i+1)

**주의사항**

  • PyPy3로 하면 메모리 초과가 발생한다. Python3 로 설정하고 제출하자.
  • 그냥 input()을 사용하면 효율이 떨어지는 편이다. sys.stdin.readline()을 사용하자.