Baekjoon:10951

aiden·2024년 1월 12일
0

JAVA Programming

목록 보기
1/3

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

10951 문제는 앞선 10950 문제와는 다르게 입력 데이터의 끝맺음이 없다. 처음에는 너무 쉽게 생각했는지, 그냥 while(true)로 작성해버렸다. 나와 비슷한 사람들이 매우 많이 보였다.

🍊첫 제출

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int result;

        while(true){
            result = scanner.nextInt() + scanner.nextInt();
            System.out.println(result);
        }
    }
}

하지만 런타임 에러가 발생했고, 이렇게 단순하게 생각해서 풀 수 없다는 생각이 들었다.

질문 게시판을 탐독한 결과, 이 문제는 EOF의 케이스를 고려해서 풀어야 한다는 것을 알게 되었다.

Scanner 객체의 hasNext() 메서드를 이용하면 쉽게 풀 수 있다.
hasNext()는 다음 데이터가 존재하면 true, 존재하지 않으면 false를 반환한다.
우리의 조건에 딱 맞는 상황이다.

🍊최종 제출

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int result;

        while(scanner.hasNext()){
            result = scanner.nextInt() + scanner.nextInt();
            System.out.println(result);
        }
    }
}

profile
파인애플 좋아하세요?

0개의 댓글