백준 2751 : 수 정렬하기2 - 파이썬 / sys.stdin.readline()에 대하여

낙원·2022년 11월 18일
2

Baekjoon

목록 보기
6/15
post-thumbnail

문제

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

해결 방안

파이썬에 내장된 sort를 이용해 간단히 해결했다.

코드

시간초과 코드

n = int(input())

arr = []

for i in range(n):
    arr.append(int(input()))

arr.sort()

for i in range(n):
    print(arr[i])

이렇게 냈는데 또 시간초과 오류가 떴다ㅜㅠㅠㅠㅠ
그래서 아래 코드로 바꿔서 제출했더니 정답이 떴다ㅎ

정답 코드

import sys

n = int(input())
arr = []

for i in range(n):
    arr.append(int(sys.stdin.readline()))

arr.sort()

for i in range(n):
    print(arr[i])

c언어와 달리 sort라는 내장 함수가 있어 쉽게 해결하긴 했지만
시간초과 오류가 나서 당황했던 문제다😂😂😂😂😂😂


🔔sys.stdin.readline()🔔

결국 input() 과 sys.stdin.readline()의 차이를 알아봤다.

🧨input() 이 sys.stdin.readline() 보다 느린 이유 :

input() 내장 함수는 sys.stdin.readline()과 비교해서

prompt message를 출력하고,
개행 문자를 삭제한 값을 리턴하기 때문에 느리다고 한다.


앞으로 백준 문제를 풀 때는
무조건 sys.stdin.readline()을 사용하면 될 것 같다 :D

0개의 댓글