프로그래밍-학습기록/코딩테스트

백준 온라인 저지 | 10952 | while문: A+B - 5

leesche 2020. 7. 15. 23:47

나의 풀이

while문의 조건을 'A와 B가 동시에 0이다'의 부정형인 'A가 0이 아니거나 B가 0이 아니다'로 두고 풀었다.

package baekjunOnlineJudge;

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

public class Bj_10952 {

	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[] arrAB = br.readLine().split(" ");
        int A = Integer.parseInt(arrAB[0]);
		int B = Integer.parseInt(arrAB[1]);
		
        while(A!=0 || B!=0){
        	bw.write(A+B+"\n");
        	String[] nextAB = br.readLine().split(" ");
            A = Integer.parseInt(nextAB[0]);
    		B = Integer.parseInt(nextAB[1]);
        }
        
        bw.flush(); 
		bw.close(); 
	}
}

 

다른 사람 풀이

다른 사람들은 보통 while을 true로 둔 다음 if 조건문을 써서 break를 하는 모습이었다. 확실히 이게 더 간단할지도 모르겠다.

import java.io.*;

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) {
	        String[] arr = br.readLine().split(" ");
	        int a = Integer.parseInt(arr[0]);
	        int b = Integer.parseInt(arr[1]);
	        if(a==0&&b==0)break;
	        bw.write(Integer.toString(a+b)+"\n");
        }
        bw.flush();
    }
}