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);
}
}
}