http://acmicpc.net/problem/15552
{코드}
import sys.stdin.readline
input = sys.stdin.readline
for _ in range(int(input()):
print(sum(map(int, input().split()))
{설명}
이 문제의 설명을 보면 입출력이 느리면 시간 초과가 날 수 있다고 명시되어 있습니다.
그리고 파이썬으로는 기본 함수인 input보다는 sys 라이브러리의 sys.stdin.readline 함수를 사용하는 것을 추천한다고 되어있습니다.
그러면 왜 input 대신 저 긴 함수를 쓰라고 할까요? 당연하지만 저 긴 함수가 더 빠르게 처리하기 때문입니다.
간단히 설명하면 input에는 문자열 파라미터를 넣을 수 있는데 이 파라미터를 처리하는데 시간이 필요합니다.
물론 대부분의 상황에서는 별 상관이 없으나 이렇게 많은 입력을 받아야 하는 상황에서는 시간 초과를 유발할 수도 있게 됩니다.
그렇기에 sys.stdin.readline 함수를 사용하게 되는데, 이때 또 확인해야 할 것은 rstrip 함수입니다.
기본적으로 sys.stdin.readline은 문자열을 반환할 때 마지막에 누른 엔터(Enter)도 저장합니다. 그래서 뒤에 '\n'이 붙어있죠.
하지만 이 문제에서는 rstrip을 실행할 필요가 없습니다.
왜냐하면 int함수는 숫자들 뒤에 이스케이프 문자(이 경우에는 줄 바꿈 문자)가 있어도 무시하고 변환시켜주기 때문입니다.
*파이썬에서는 함수를 변수에 지정할 수 있고 이미 있는 함수를 덮어씌울 수 있습니다.
'알고리즘 공부 > BOJ백준 풀이' 카테고리의 다른 글
[백준 2742번-파이썬/Python] 기찍 N (0) | 2020.09.29 |
---|---|
[백준 2741번-파이썬/Python] N 찍기 (0) | 2020.09.29 |
[백준 8393번-파이썬/Python] 합 (0) | 2020.09.29 |
[백준 10950번-파이썬/Python] A+B -3 (0) | 2020.09.29 |
[백준 2739번-파이썬/Python] 구구단 (0) | 2020.09.29 |