본문 바로가기
알고리즘/함수 in python

파이썬으로 입력받기 - input() or sys.stdin.readline()

by lucian 2021. 10. 25.

보통 백준에서 알고리즘 공부를 하다보면 입력을 넣어줘야하는 코드를 작성해야한다.

(프로그래머스에선 그런거 필요없는데....)

 

여튼 그래서 보통 input()을 쓰거나

a,b=map(int, input().split())

을 써서 받은 string값을 정수인 int값으로 바꿔주었다.

그러다가 유용한게 있어서 적어놓는다.

 

input대신 sys.stdin.readline()을 하면 시간초과를 줄여줄 수 있다.

안그래도 다른 언어에 비해 속도가 낮은 파이썬이라 시간초과가 많이 나는데 이 정보는 유용하다.

import sys

T=int(sys.stdin.readline())# strip은 문자열의 앞뒤에 있는 공백문자들을 제거해준다.


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

readline()에는 마지막에 엔터까지 들어간다.

3을 입력받을 시 '3\n' 문자열이 생성된다.

그래서 이 \n을 없애줄때 strip()을 추가해주면 된다. sys.stdin.readline().strip()

 

또는 split을 해서 공백이 포함된 문자열을 쪼개서 변수안에 넣을 수 있다.

'3 5\n'인 문자열을 a=3, b=5로 넣어줄 수 있는 방법이다.

 

특히 readline은 여러번 중복해서 넣는 for문에 빠르다.

 

import sys

T=5
lst=[sys.stdin.readline().strip() for i in range(T)]

#이러면 입력한 5개의 문자열들이 엔터를 치는 순번대로 lst란 리스트에 들어가게 된다.

댓글