문제 목적
백준 10951번 문제는 입력 데이터가 주어질 때, 각 쌍의 정수 A와 B에 대해 A+B를 출력하는 문제입니다. 다만, 입력 데이터의 끝이 정해져 있지 않아, 입력이 더 이상 주어지지 않을 때 프로그램이 종료되어야 합니다. 이 문제는 입력의 끝을 감지하는 방법과 예외 처리를 이해하고 연습하는 데 목적이 있습니다.
핵심 개념
- EOF(End Of File) 처리: 입력 데이터의 끝을 감지하여 반복 입력을 종료하는 방법을 학습합니다.
- 예외 처리: 입력 과정에서 발생할 수 있는 예외를 처리하는 방법을 이해합니다.
- 반복문과 조건문 사용: 주어진 작업을 반복하고, 특정 조건에 따라 반복을 종료합니다.
문제 해결 절차
- 반복 입력 설정: 사용자로부터 반복적으로 두 정수를 입력받습니다.
- EOF 처리를 위한 예외 처리 구현: 입력이 더 이상 주어지지 않을 때 발생하는 EOFError를 처리합니다.
- 데이터 처리 및 출력: 입력받은 두 정수의 합을 출력합니다.
- 입력 데이터 끝에 도달하면 프로그램 종료: 더 이상 입력이 없을 경우 반복 입력을 종료하고 프로그램을 마칩니다.
while True:
try: # 예외 처리를 시도합니다.
A, B = map(int, input().split())
print(A + B)
except EOFError: # 입력의 끝에 도달했을 때
break # 반복문을 종료합니다.
코드 분석
- 무한 반복문: while True를 사용하여 무한 반복 입력을 설정합니다. 이는 사용자로부터 계속해서 데이터를 입력받기 위함입니다.
- 예외 처리 구문(try-except): 입력 중에 EOFError가 발생할 경우(더 이상 입력 데이터가 없을 경우), 이를 except EOFError로 캐치하고 반복문을 break로 종료합니다. try 블록 내에서 사용자로부터 두 정수 A와 B를 입력받고, 이들의 합을 출력합니다.
- 입력 데이터 처리: input().split()으로 입력받은 데이터를 공백 기준으로 분리하고, map(int, ...)을 통해 정수형으로 변환한 뒤 A와 B에 할당합니다. 그 후, A와 B의 합을 출력합니다.
- EOF 처리: 사용자 입력이 끝났음을 나타내는 EOF(파일의 끝) 상황을 except EOFError로 처리합니다. 입력 데이터가 더 이상 없을 때 이 예외가 발생하며, 이를 통해 반복문에서 빠져나와 프로그램이 정상적으로 종료됩니다.
마무리
같은 입력을 실행하더라도 다양한 예외가 존재한다 예외처리를 위한 기본 접근을 이해할 수 있었다.
'알고리즘, 자료구조' 카테고리의 다른 글
[백준| 단계별로 풀어보기 4단계 1차원 배열 | Python] 10870번 공 넣기 (0) | 2024.04.04 |
---|---|
[백준| 단계별로 풀어보기 4단계 1차원 배열 | Python] 2562번 최댓값 (0) | 2024.04.04 |
[백준| 단계별로 풀어보기 3단계 반복문 | Python] 10952번 A + B 입력처리 (1) | 2024.04.03 |
[백준| 단계별로 풀어보기 3단계 반복문 | Python] 15552번 빠른 A + B (0) | 2024.04.03 |
[백준| 단계별로 풀어보기 3단계 반복문 | Python] 25304번 영수증 (0) | 2024.04.03 |