본문 바로가기
PS/백준

[백준][Java] 10951번 : A + B - 4 - EOF

by nyrimmm 2024. 6. 26.

[문제 링크]

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


문제 설명

  • 두 정수 A, B를 입력받아서 A와 B를 더한 값 출력
  • 여러 개의 테스트 케이스로 이루어져 있고, 테스트 케이스 횟수는 정해져있지 않다.
  • 입력 종료는 더이상 읽을 수 없는 데이터(EOF)
  • 입력: A, B
  • 출력: A+B

 

 

 

문제 풀이

(1) Scanner 사용

  • hasNext() 함수를 사용해서 EOF일 경우 False 반환, 값이 있는 경우 True 반환
import java.util.Scanner;

public class Main1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while (sc.hasNext()) {
            int a = sc.nextInt();
            int b = sc.nextInt();

            System.out.println(a + b);
        }
    }
}

 

 

 

(2) BufferedReader 사용

  • str에 입력받은 데이터가 null일 때까지 계속 입력을 받도록 조건 설정
  • (str = br.readLine()) != null  →  EOF일 경우 False 반환, 값이 있는 경우 True 반환 
import java.io.*;
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));
        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());

            bw.write(a+b + "\n");
        }
        
        bw.flush();
        bw.close();
    }
}

 

 

 

✔️체크

EOF란?

End Of File의 약자로, 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 말한다.

알고리즘에서 입력값을 얼마나 받을지 명시하지 않을 경우 EOF를 사용한다.

입력에서 더 이상 읽을 수 있는 데이터가 존재하지 않으면 종료한다.