import sys
N = int(sys.stdin.readline())
result = []
for i in range(N):
A,B = map(int,input().split()) # 수정필요
result.append(A+B)
for i in result:
print(i) # 수정필요
import sys
N = int(sys.stdin.readline())
result = []
for i in range(N):
A,B = map(int,sys.stdin.readline().split()) # 개선
result.append(A+B)
sys.stdout.write('\n'.join(map(str, result)) + '\n') # 개선
입력 차이 : input()
vs sys.stdin.readline()
input()
: 내부적으로 sys.stdin.readline() + 추가 처리(strip, encoding)까지 하므로 속도가 느림
sys.stdin.readline()
: 훨씬 빠른 순수 입력 방식이므로 대량 입력 처리에 유리
이 문제는 최대 1,000,000번 입력을 받아야 하므로, input()을 쓰면 시간 초과 발생 가능성 높음.
출력 차이 : print()
vs sys.stdout.write()
print()
: 한 줄 출력마다 I/O 호출 발생
sys.stdout.write()
: 한 번에 모두 출력 I/O 호출 횟수를 줄여 속도 향상
지금까지 정답 맞추기만 집중했는데 이번 문제를 통해 입출력 최적화 및 효율성 또한 코딩 테스트에서 중요하다는 것을 배웠다.
처음에는 input()과 print()를 사용해 평소처럼 풀었지만, 시간 초과가 발생했다.
파이썬에서 input()은 내부적으로 추가 처리가 많아 느리고, print()도 줄마다 I/O를 발생시켜 많은 입력/출력이 필요한 문제에서는 비효율적이라는 걸 다시 한 번 체감했다.
sys.stdin.readline()과 sys.stdout.write()를 활용하면 입출력 속도가 크게 향상되며,
특히 join()으로 결과를 한번에 출력하는 방식이 효율적이고 실용적이었다.