문제
두 정수 A와 B가 주어질 때 A+B를 출력한다. 입력의 마지막에는 0 0이 주어진다.
입력
각 줄에 A와 B가 주어진다 (0 이상 10 이하). 마지막 줄은 0 0이다.
출력
각 테스트 케이스마다 A+B를 출력한다. 0 0은 출력하지 않는다.
예제
| 입력 | 출력 |
|---|---|
1 1 2 3 0 0 | 2 5 |
풀이
0 0이 입력될 때까지 반복하며 A+B를 계산한다.
- 무한 루프에서 한 줄씩 읽어 A, B를 파싱한다
- A와 B가 모두 0이면 루프를 종료한다
- 그렇지 않으면 A+B를 StringBuilder에 추가한다
- 결과를 한 번에 출력한다
핵심 아이디어: 종료 조건(0 0)이 있는 반복 입력 패턴으로, while-break 구조로 처리한다.
코드
package day549;
import java.io.*;
import java.util.*;
public class Day524BOJ10952ab5 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
while (true) {
st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
if (A == 0 && B == 0) {
break;
}
sb.append((A + B)).append('\n');
}
System.out.println(sb);
}
}복잡도
- 시간: O(N)
- 공간: O(N)