자기계발
백준
10951 · A+B - 4

백준 10951번 A+B - 4

문제

입력은 여러 개의 테스트 케이스이고, 각 줄에 A와 B가 주어진다(0보다 크고 10보다 작다). 케이스 수는 주어지지 않으며, 각 케이스마다 A+B를 출력한다.

풀이

케이스 수를 알 수 없어서 막혔고 결국 검색해서 try와 except를 떠올렸다. 자주 쓰지 않아 익숙하지 않았다.

while True:
    try:
        A, B = map(int, input().split())
        print(A + B)
    except:
        break

while True로 계속 입력을 읽다가, 더 읽을 입력이 없으면 input()이 EOFError를 일으키고 except로 넘어가 break로 반복을 끝낸다.

짚고 갈 점

  • 원글에서는 A만 입력된 경우처럼 오류가 나면 멈춘다고 적었다. 이 문제에서 반복을 끝내는 것은 입력의 끝(EOFError)이다. 값이 하나뿐인 줄이 들어와 ValueError가 나도 같은 except로 빠진다.
  • 이름 없는 except는 모든 예외를 잡는다. 입력 종료만 처리하려면 except EOFError:로 쓰는 편이 정확하다.

출처