# 문제
- 주소: https://www.acmicpc.net/problem/10952
- A와 B의 합을 출력하는데 A와 B가 0이 입력 값으로 들어오면 종료하기.
# 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] strs;
int A, B;
while (true) {
strs = br.readLine().split(" ");
A = Integer.parseInt(strs[0]);
B = Integer.parseInt(strs[1]);
if (A == 0 && B == 0) break; // 입력값이 두개다 0이면 멈추기.
bw.write((A + B) + "\n");
}
bw.flush();
bw.close();
br.close();
}
}
# 입/출력 결과
# 과정
- BufferedReader + InputStreamReader 클래스를 사용하여 입력값 받기.
- BufferedWriter + OutputStreamWriter 사용해서 출력하기.
- Strs[] strs, int A, int B 선언만 하기.
- while문 사용하여 계산
- : 조건식은 true로 하여 무한으로 반복할 수 있게 하기.
- : strs는 입력 받는 값을 공백 기준으로 나누어서 저장하기.
- : A와 B에 각각 strs의 값을 저장.
- : if문을 사용하여 A와 B의 값이 0이면 멈추기. (while문 바깥으로)
- : .write()를 사용하여 A와 B이 합을 모아두기.
- while문 밖에서 .flush()를 사용하여 출력하고 데이터 비우기.
- br과 bw 각각 close 해주기.
# 느낀 점
- 처음에 문제를 보고 쉽겠다 생각했는데 생각해보니 반복문으로 입력값을 쭉 입력 받다가 두 입력값이 0이면은 그만 입력이 받아지고 출력이 되는 것을 알게 되었다. if문만 계속 떠올라서 생각하다가. while문을 사용하면 좋을 거 같다고 생각했다.
- if문 사용 안하고 while문 조건식으로만 하려고 하다가 중간에 코드를 잘못 작성해서 무한 출력이 되게 만들어서 당황했다. 그래서 명확하게 if문 사용해서 입력값이 둘다 0이면 break를 줘서 while문 밖으로 나가도록 하는 게 좋겠다 생각했다.
'코딩 테스트' 카테고리의 다른 글
[코딩테스트] 백준 10807번: 개수 세기 (0) | 2025.05.19 |
---|---|
[코딩테스트] 백준 10951번: A+B - 4 (0) | 2025.05.16 |
[코딩테스트] 백준 2439번: 별 찍기 - 2 (0) | 2025.05.15 |
[코딩테스트] 백준 2438번: 별 찍기 - 1 (0) | 2025.05.15 |
[코딩테스트] 백준 11022번: A+B - 8 (0) | 2025.05.14 |