본문 바로가기
개발/알고리즘

[백준] #10989 수 정렬하기

by 김개발 2020. 10. 28.

www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

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

www.acmicpc.net

* 개수는 무수히 많고 범위가 정해져있는 경우 계수정렬을 이용하여 문제를 푼다

a = [0] * 10001
res = []
n = int(input())
for _ in range(n):
    a[int(input())] += 1

for i in range(10001):
    if a[i] == 0:
        continue
    for _ in range(a[i]):
        print(i)
        

* 기존input() 함수를 사용하면 시간초과 에러가 발생한다

import sys

a = [0] * 10001
res = []
n = int(sys.stdin.readline())
for _ in range(n):
    a[int(sys.stdin.readline())] += 1

for i in range(10001):
    if a[i] == 0:
        continue
    for _ in range(a[i]):
        print(i)
        

* 데이터의 개수가 많을 때 파이썬에서는 sys.stdin.readline()을 사용해야한다

'개발 > 알고리즘' 카테고리의 다른 글

[시간초과][백준] #1074 Z  (0) 2020.10.29
[백준] #2747 피보나치 수  (0) 2020.10.28
[백준] #11650 좌표 정렬하기  (0) 2020.10.28
[백준] #10814 나이순 정렬  (0) 2020.10.28
[백준] #1427 소트인사이트  (0) 2020.10.28

댓글