본문 바로가기
Programming/Algorithm

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

by 안녕주 2021. 7. 10.

문제

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

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

각 테스트 케이스마다 A+B를 출력한다.


코드

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int a,b;

        while (sc.hasNextInt()){
            a = sc.nextInt();
            b = sc.nextInt();
            System.out.println(a+b);
        }
        sc.close();
    }   
}

풀이

입력할때 별다른 설명이 없어서 먼저 구글링을 해보았다. 내가 자주 참고하는 Stranger's LAB님의 코드를 보니 EOF일 경우 종료한다. 하고 설명을 해주셨다.

 

EOF란

컴퓨팅에서, 파일 끝(End of File, EOF)는 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타낸다.

 

자바에서는 hasNextInt(), hasNext()를 사용해서 이 문제를 풀 수 있다. 그렇게 되면 엔터나 공백과 같은 입력을 받아들이지 않는다.

hasNextInt()는 키보드에서 입력된 값이 숫자이면 true을 반환하고 숫자가 아니면 false을 반환한다.

 

하지만 vs code에서 코드를 돌려보면 엔터를 입력했을 때 프로그램이 종료되지는 않는다.

다른 사람들은 Buffered...어쩌구를 많이 쓰던데 아직 그 메소드?에 대해서 잘 몰라서 나중에 다시 봐야할것같다.

 

댓글