[백준/Python] 15552) 빠른 A+B

Jimin_Note·2일 전
0

[백준/Python]

목록 보기
23/25
post-thumbnail

✨ 2025.06.07 코딩테스트 문제 풀이

📌 문제: 빠른 A+B

🧠 문제 설명

  • 각 테스트케이스마다 정수 A, B가 주어지고, 각 줄마다 A+B의 결과를 출력해야 하는 문제
  • 문제 이름이 빠른 A+B인 만큼 입출력 속도가 매우 중요하다.

💻 내가 작성한 코드

  • ❌1번째 답안(시간초과로 실패)
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) # 수정필요
  • ⭕️ 2번째 답안(통과)
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()으로 결과를 한번에 출력하는 방식이 효율적이고 실용적이었다.

profile
Hello. I'm jimin:)

0개의 댓글