문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
각 테스트 케이스마다 A+B를 출력한다.
예제 입력 1 복사
1 1
2 3
3 4
9 8
5 2
예제 출력 1 복사
2
5
7
17
7
이 문제도 전 문제와 같이 while 문을 이용하고, A와 B의 범위가 주어졌으니 그걸 이용해서 break를 하면 된다고 생각했다.
import sys
while True:
a, b = map(int, sys.stdin.readline().split())
if a == 0 or b > 10:
break
print(a+b)
그런데 런타임에러가 떠서 구글링을 통해 다른 블로그들을 찾아보니, try except문으로 푸는 문제였다.
즉 입력이 얼마나 들어올지 모르는 상황에서, while문이 끝나는 조건도 제공되어 있지 않다.
문제에 EOF에 대해 알아보자고 되어 있었는데, 들여쓰기인줄 알았다. 그런데 입력이 끝날 때까지 출력하는 것의 줄임말이였다.
try, except 문으로 입력이 들어오지 않을 때 while 문을 종료하면 된다.
try: try 안에 코드를 실행하고
except: 그 외의 것들은 break(except 문 안의 코드 실행)
import sys
while True:
try:
a, b = map(int, sys.stdin.readline().split())
print(a+b)
except:
break
정답 코드
'코딩테스트 > 백준' 카테고리의 다른 글
백준 > 단계별로 풀어보기 > 1차원 배열 > 10871번: X보다 작은 수 (0) | 2024.07.16 |
---|---|
백준 > 단계별로 풀어보기 > 반복문 > 10807번: 개수 세기 (0) | 2024.07.16 |
백준 > 단계별로 풀어보기 > 반복문 > 10952번: A+B - 5 (0) | 2024.07.16 |
백준 > 단계별로 풀어보기 > 반복문 > 2439번: 별 찍기 - 2 (0) | 2024.07.16 |
백준 > 단계별로 풀어보기 > 반복문 > 15552번: 빠른 A+B (2) | 2024.07.16 |