백준/JAVA

[백준/JAVA] 10951번 A+B-4

누룽지맛치킨 2023. 1. 17. 14:37
  • while문과 EOF의 개념을 이용해서 사용자가 EOF를 입력하기 전까지 두 수의 합을 출력하는 문제.

https://www.acmicpc.net/problem/10951

1. 문제

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

2. 문제 접근

  • 두 개의 입력을 받는다.
  • EOF가 입력되지 않았다면 두 수의 합을 출력한다!

-> EOF의 개념을 사용해서 문제를 풀어보자!

Scanner에서 EOF 입력!

  • Scanner에서 EOF를 사용하는 방법 : .hasNext() 메소드 사용 -> EOF일 경우 false 반환, 값이 있는 경우 true 반환
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){}

BufferedReader에서 EOF 입력!

  • Bufferedeader에서 EOF를 사용하는 방법 : (str=br.readLine())!=null 사용 -> EOF일 경우 false 반환, 값이 있는 경우 true 반환
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
while((str=br.readLine())!=null){}

3. 코드

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

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;
        String input;
        int num1, num2;
        while((input=br.readLine())!=null) {
            st = new StringTokenizer(input);
            num1 = Integer.parseInt(st.nextToken());
            num2 = Integer.parseInt(st.nextToken());
            sb.append(num1+num2).append("\n");
        }
        System.out.print(sb);
    }
}