알고리즘/백준

[백준] 10952 - A + B-5

leegeonwoo 2023. 10. 20. 23:14

• 문제

이미지 클릭시 문제창이 열립니다

A+B를 해주는 문제이다.

이번 문제는 테스트케이스를 받는 것이아니라

두 개의 값에 모두 0이들어오면 출력하고 프로그램을 종료하는 프로그램이다.


• 풀이

 

이번문제에서는 입출력을 BufferedReader, BufferdWriter를 이용하여 풀 것이다.

먼저 프로그램이 종료되는 조건을 살펴보면

A와 B모두 0이 입력되었을때이므로

if(A == 0 && B == 0)

A가 0이고, B도 0이면 이라는 코드이다.

위 코드가 들어왔을 경우 BufferdWriter를 사용할 예정이므로 bw.flush를 해주고 반복문을 빠져나오면 된다.

 

이렇게 반복문의 정해진 종료시점이 없을때는 while문을 사용하는 것이 좋다.

이제 전체코드를 살펴보자

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

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));
		
		while(true) {
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			int A = Integer.parseInt(st.nextToken());
			int B = Integer.parseInt(st.nextToken());
			if(A == 0 && B == 0) {
				bw.flush();
				break;
			}
			bw.write(A+B + "\n");	
		}
		bw.close();
	}
}

while(true)로 하면 무한반복을 할 수 있고 if문에서 A와 B에 0이 들어오면 break로 반복문을 빠져나올 수 있다.

write()메서드를 사용할 때 "\n"개행을 넣어줘야 옳바르게 출력되니 주의하도록하자


마무리

write()메서드를 사용할 때 왜 개행을 넣어주지않으면 출력이 안되는지 알아보면 좋을 것 같다.

728x90