성장일기

내가 보려고 정리하는 공부기록

코딩테스트/백준 브론즈,실버

[백준] 10951 : A + B (EOF 처리하기) - JAVA

와나나나 2024. 1. 26. 13:22
728x90

백준 단계별 문제풀이 3단계 (반복문)

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

 

10951번: A+B - 4

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

www.acmicpc.net

 

 

# 문제

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

 

# 예제

입력

1 1
2 3
3 4
9 8
5 2

 

출력

2
5
7
17
7

 

# 필요개념

겉보기엔 그냥 입력받아서 덧셈연산을 하면 되는 문제이지만, 이 문제의 특이점은 입력 개수가 명시되어있지 않다는 것이다. while문이나 for문을 쓸 때 반복문을 멈추는 조건이 필요하다. for문을 쓸 땐 입력 개수가 필요하고, while문을 쓸 땐 break 조건이 필요한데, 이 문제에는 그런 정보가 없다. 그래서 읽을 수 있는 값이 없으면 멈추도록 설계를 해야한다.

 이렇게 읽을 수 없는 데이터가 없는 경우에는 EOF를 사용한다.

 

EOF

EOF는 End Of File 의 약자이다. 읽을 수 있는 데이터가 없는지를 확인하려면 입력을 받을 때 쓰는 Scanner나 Bufferedreader를 확인해야한다.

 

  • Scanner
    • 스캐너 클래스에서는 hasNext() 메소드를 사용하면 된다. 출력 타입은 boolean이다.
    • 이 메소드를 while문에 넣으면 된다.
  • BufferedReader
    • hasNext처럼 명확한 메소드가 없어서 readLine()이 null 인지를 보면 된다. 코드는 아래와 같이 작성한다.
    • (input = br.readLine()) != null

나는 이 문제에서 Scanner를 사용하였다/.

 

# Code

import java.util.Scanner;

public class Main {
    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);
        }

    }
}

 

 

# 결과