문제링크
https://www.acmicpc.net/problem/2751
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제 입력 & 출력
풀이
시도1
count = int(input())
num = []
for i in range(count):
num_i = int(input())
num.append(num_i)
num.sort()
for f in range(len(num)):
print(num[f])
input을 사용하여 사용자로 부터 입력받은 후 제출하였더니 시간 초과가 발생하였습니다.
처리속도가 더 빨라야한점을 고려하여 input대신 sys.stdin.readline()을 사용하였습니다.
이전에 input()과 sys.stdin.readline()의 적절한 사용법과 어떨때 사용하면 좋을지 포스팅한 내용이있는데 input보다 더 빠른 처리가 가능하기 때문에 시간초과가 발생하지 않을거 같습니다.
시도2
import sys
i = int(input())
num = []
for z in range(i):
num.append(int(sys.stdin.readline().strip()))
num.sort()
for f in range(len(num)):
print(num[f])
사용자로부터 N개의 숫자를 입력받는 부분을 sys.stdin.readline으로 처리하여 정렬후 한줄씩 출력하도록 작성하였습니다.