백준 10952

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

입력의 마지막에는 0 두 개가 들어온다.

 


 

처음 접근한 방법

BufferedReader, BufferedWriter를 사용해서 입력, 출력한다.

반복문 안에서 더하기 연산을 수행하고, 만약 입력값이 0이라면 반복을 멈추고 결과값들을 출력한다.

package baekjoon;

import java.io.*;

public class B10952 {
    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[] inputString = {};
        int sum;

        while (true) {
            inputString = br.readLine().split(" ");

            if("0".equals(inputString[0])){
                break;
            }

            sum = 0;

            for (int i = 0; i < inputString.length; i++) {
                sum += Integer.parseInt(inputString[i]);
            }

            bw.write(sum + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}

 

 

초기 코드의 문제점

 

반복문을 멈추는 조건문의 조건식이

입력받은 문자열을 공백 기준으로 분리해서 저장한 배열의 첫 번째 인덱스 요소가 "0"일 때 break 한다.

이렇게 되면 0, 1을 더하는 연산도 수행하지 않고 반복문이 중단되기 때문에, 반드시 "0 0"이 입력되었을 때만 중단하도록 수정해야한다.

 

 

개선한 코드

if("0".equals(inputString[0]) && "0".equals(inputString[1])){
    break;
}

 

 


결과