본문 바로가기

알고리즘/백준 (Pyhthon)

[알고리즘] 백준 10989 수 정렬하기 / python

파이썬의 기본 정렬 라이브러리는 O(nlogn)의 시간복잡도를 가지기 때문에 천만개의 데이터는 메모리초과
시간복잡도 O(n)의 계수정렬 알고리즘을 이용해야함

 

import sys

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

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

for i in range(10001):
    if arr[i] != 0:
        for j in range(arr[i]):
            print(i)
데이터의 개수가 많을때는 sys.stdin.readline() 을 사용해야함
arr = [int(x) for x in input().split()] 이방법보다
arr = map(int, sys.stdin.readline().split()) 이 빠르다