아이공의 AI 공부 도전기

[Baekjoon] 10989번 : 수 정렬하기 3 (Python, 계수 정렬)

 

     

 

 

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

 

10989번: 수 정렬하기 3

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

www.acmicpc.net

코드 링크

https://github.com/stellaluminary/Baekjoon

 

GitHub - stellaluminary/Baekjoon

Contribute to stellaluminary/Baekjoon development by creating an account on GitHub.

github.com

 

Python

 

방법 1 - 메모리 30840KB / 시간 9132ms / 코드 길이 192B

 

입력 받을 정수의 범주가 작다면 계수 정렬로 입력받아 출력하는 것이 빠르다.

 

import sys
input = sys.stdin.readline

n = int(input())
l = [0]*10001

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

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

 

(메모리 초과) 방법 2 -  코드 길이 114B

 

일반적인 정렬로는 시간이 걸린다. 

 

n = int(input())
l = []
for i in range(n):
    l.append(int(input()))

l.sort()
for i in range(n):
    print(l[i])

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading