[백준 10951 파이썬] A+B -4 - 반복문 (while, try - except, EOF)
안녕하세요.
A+B 4번이네요. 지난번이 5번이었는데, 순서가 거꾸로 가는군요. 'A+B -5'문제와 다른 점은 0 0 입력으로 끝나지 않는다는 점 뿐입니다. 그럼 무한정 루프를 돌리란 말인가? 뭐가 문제인 걸까요?
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
각 테스트 케이스마다 A+B를 출력한다.
문제 분석
문제의 키는 의외로 문제 목록에 있었습니다. 앞 문제는 0 0 입력 시 종료하는 문제이고, 이번 문제는 '입력이 끝날 때까지', 'EOF' 등등의 모호한 문구만 있네요.
EOF는 End of File을 뜻합니다. 파일의 마지막까지 갔을 때 EOF 에러 메세지를 출력하는 것이죠. 이번 문제에서는 '입력이 끝날 때' EOF 에러가 발생하는 것으로 가정하고 문제를 풀면 될것 같네요.
이제 좀더 단순화 시켜보겠습니다. EOF는 에러가 발생하는 상황이고, 에러가 발생하면 종료 (break)한다. 언뜻 조건문 같지만 에러가 발생하는 경우는 try ~ except 문을 사용해서 예외처리를 합니다.
try: 실행하고자 하는 코드
except: 에러 발생 시 실행되어야 하는 코드
실제 복잡한 프로그래밍 시에는 무수히 많은 이유로 에러가 발생하고 어떤 때는 치명적일 수 있기 때문에 에러가 발생했을 때의 대응 지침을 주는게 try ~ except 문이라고 생각하시면 됩니다.
자세한 활용은 답안을 통해 보시죠.
답안
while True는 지난 'A+B -5' 포스팅에서 살펴봤죠. 마지막에 아무것도 입력하지 않거나 정수 1개만 입력하는 등 에러를 발생시키면 반복문이 종료됩니다.
앞 문제와 비교해보면 앞 문제의 코드는 정수를 1개만 입력하면 에러가 발생합니다. 입력하지 않아도 마찬가지죠.
물론, 위의 예시로 든 사례가 EOF 에러는 아니지만, 백준 알고리즘 테스트에서 EOF에러를 발생시키는 경우에도 위와같이 작동해서 루프를 종료시킨다는 점만 우선 숙지하시면 될 것 같습니다.
답안 작성과 제출 꼭 직접 해보시기 바라며 이만 마치겠습니다.
읽어주셔서 감사합니다.
'파이썬 > BOJ_반복문' 카테고리의 다른 글
[백준 1110 파이썬] 더하기 사이클 - 반복문 (무한루프 (while True) + 조건문 (if, else)) (0) | 2023.01.21 |
---|---|
[백준 10952 파이썬] A+B -5 - 반복문 (while True & break feat. 무한루프, 조건문) (0) | 2023.01.14 |
[백준 2439 파이썬] 별 찍기 -2 - 반복문 (for, 오른쪽부터 출력) (0) | 2023.01.11 |
[백준 2438 파이썬] 별 찍기 -1 - 반복문 (for, 문자열 곱하기, 더하기) (0) | 2023.01.10 |
[백준 11022 파이썬] A+8 -8 - 반복문 ("Case #x" feat. 조금 더 아름답게 출력) (0) | 2023.01.08 |
댓글