본문 바로가기

알고리즘, 자료구조

[백준| 단계별로 풀어보기 3단계 반복문 | Python] 10951번 A + B 예외처리

문제 목적

백준 10951번 문제는 입력 데이터가 주어질 때, 각 쌍의 정수 A와 B에 대해 A+B를 출력하는 문제입니다. 다만, 입력 데이터의 끝이 정해져 있지 않아, 입력이 더 이상 주어지지 않을 때 프로그램이 종료되어야 합니다. 이 문제는 입력의 끝을 감지하는 방법과 예외 처리를 이해하고 연습하는 데 목적이 있습니다.

핵심 개념

  • EOF(End Of File) 처리: 입력 데이터의 끝을 감지하여 반복 입력을 종료하는 방법을 학습합니다.
  • 예외 처리: 입력 과정에서 발생할 수 있는 예외를 처리하는 방법을 이해합니다.
  • 반복문과 조건문 사용: 주어진 작업을 반복하고, 특정 조건에 따라 반복을 종료합니다.

문제 해결 절차

  1. 반복 입력 설정: 사용자로부터 반복적으로 두 정수를 입력받습니다.
  2. EOF 처리를 위한 예외 처리 구현: 입력이 더 이상 주어지지 않을 때 발생하는 EOFError를 처리합니다.
  3. 데이터 처리 및 출력: 입력받은 두 정수의 합을 출력합니다.
  4. 입력 데이터 끝에 도달하면 프로그램 종료: 더 이상 입력이 없을 경우 반복 입력을 종료하고 프로그램을 마칩니다.
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로 처리합니다. 입력 데이터가 더 이상 없을 때 이 예외가 발생하며, 이를 통해 반복문에서 빠져나와 프로그램이 정상적으로 종료됩니다.

마무리

같은 입력을 실행하더라도 다양한 예외가 존재한다 예외처리를 위한 기본 접근을 이해할 수 있었다.