본문 바로가기
Baekjoon 자바 코드/반복문

[백준] 10951번 A+B - 4 풀이 코드 (Java 자바)

by 망댕이 2024. 7. 2.
반응형

접근 방법)

 

해당 핵심 포인트는 입력 값이 더 이상 주어지지 않을 때까지 A와 B의 합을 출력하는 반복을 어떻게 만들 것인지가 중요하다.

 

▷ Scanner를 이용

 

Scanner에서 더 이상 데이터가 존재하지 않을 때 NoSuchElementException 경고가 나타나며 hasNext() 메소드를 사용해 처리할 수 있다.

Scanner s = new Scanner(System.in);
while(s.hasNextInt()){ --- }

 

▷ BufferedReader를 이용

 

BufferedReader는 더 이상 데이터가 존재하지 않을 때 null을 반환한다.

그래서 while((str = br.readLine()) != null){ --- } 이 코드를 사용하여 처리할 수 있다.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
while((str = br.readLine()) != null){ --- }

 

br.readLine() 메소드는 라인 단위로 읽어들이기 때문에 다음 라인의 String이 없을 경우 null을 반환하게 된다

 


정답 코드 1)

import java.util.Scanner;

class Main{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        
        while(s.hasNextInt()){
            int a = s.nextInt();
            int b = s.nextInt();
            System.out.println(a+b);
        }
    }
}

 

s.hasNextInt()를 통해 false를 반환할 때까지 a+b값을 계속 출력해준다.

정답 코드 2)

import java.io.*;
import java.util.StringTokenizer;

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));
        
        StringTokenizer st;
        String str;
            
        while((str = br.readLine()) != null){
            st = new StringTokenizer(str);
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            int c = a+b;
        
            bw.write(c+"\n");    
        }
        br.close();
        bw.flush();
        bw.close();
            
    }
}

 

(str = br.readLine())에 데이터가 없어 null 반환하여 while문이 끝날 때 까지 반복문을 수행한다.

그리고 nextToken() 메소드로 숫자 하나 하나 변수에 입력받아 a+b를 출력해주면 된다.

반응형