알고리즘/함수 in python
파이썬으로 입력받기 - input() or sys.stdin.readline()
lucian
2021. 10. 25. 17:35
보통 백준에서 알고리즘 공부를 하다보면 입력을 넣어줘야하는 코드를 작성해야한다.
(프로그래머스에선 그런거 필요없는데....)
여튼 그래서 보통 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란 리스트에 들어가게 된다.