Developer/Python

input 대신에 빠른 입력을 받는 sys.stdin.readline() 사용법

빠르크의3분강좌 2023. 7. 27. 12:32
반응형

input 대신에 빠른 입력을 받는 sys.stdin.readline() 사용법

 

백준 15552번 문제는 반복문 문제로 파이썬으로 이 문제를 푼다면 기존 input 방식보다는 sys.stdin.readline() 을 이용해서 풀어야 정답으로 인정된다.

정답률 50% 미만의 문제로 문제 난이도는 그렇게 높지 않다. 

다만 문제 조건으로 입출력 시간이 있어 아무래도 시간을 넘겨 오답으로 인정된 경우가 많은 듯 하다.

 

나도 처음에 제출한 코드는 다음과 같다.

n = int(input())

for i in range (n):
    a, b = map(int,input().split())
    print (a+b)

결과는 '시간 초과'가 나타났다. 아무래도 원인은 input으로 값을 입력받았기 때문에 조건에 해당하는 시간을 초과하였다.

따라서 빠른 입력에 해당하는 명령어를 코드에 넣어주면 된다.

 

사용하는 언어마다 해결 방법이 다른데 파이썬3를 기준으로 설명하면 input을 sys.stdin.readline() 으로 고쳐서 하면 된다.

 

다만 이 부분에 있어서 그냥 input을 단순하게 sys.stdin.readline() 으로 치환하여 사용하면 안된다. 

 

sys가 무엇인지 파이썬이 이해할 수 없기에 import 를 이용하여 sys를 불러와야한다.

 

그래서 다음 코드와 같이 먼저 입력을 하면 된다.

 

import sys
n = int(sys.stdin.readline())

 

혹시 정답을 알고자 하는 분은 다음을 참고하길 바랍니다.

더보기
import sys
n = int(sys.stdin.readline())

for i in range (n):
    a, b = map(int,sys.stdin.readline().split())
    print (a+b)