관리 메뉴

Unwound Developer

백준 2751번 (python) - 수 정렬하기2 본문

Algorithm

백준 2751번 (python) - 수 정렬하기2

unwind 2023. 10. 15. 14:24
반응형

수 정렬하기2

백준 > 단계별로 풀어보기 > 정렬

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

풀이

import sys

N = int(sys.stdin.readline())
array = []
for i in range(N):
    array.append(int(sys.stdin.readline()))
array.sort()

for i in array:
    print(i)

2750과 같은 문제라고 생각하고, 입력 받을 때 input()을 사용해 했으나, 시간초과가 발생했다.

Python내장 함수 중 입력을 받는 함수는 크게 두 종류가 있는 것 같다.

  • sys.stdin.readline()
  • input()

크게 두 가지 인데, 전자의 경우 sys 라이브러리 import를 요구한다.

자세히 들어가면 두 함수의 차이점이 더 있겠지만, 여기서 readline함수는 시간초과가 발생하지않고, input함수는 시간초과가 발생한데에는 파라미터 차이가 있다.

input의 경우에는 파라미터로 prompt message(입력받기 전 띄우는 메세지)를 받을 수 있고,

readline()의 경우에는 파라미터를 받지 않아, 거기서 속도 차이가 나온다.

반응형