더 좋은 문제 풀이가 있거나 궁금하신 점이 있다면 편하게 댓글 남겨주세요!
지난 포스팅 글인 [백준/JAVA] 반복문 - 10952번 A+B - 5 와 비슷한 문제입니다.
단 차이점이 있다면, 지난 문제에서는 반복문의 종료지점이 정해져 있었고 이번 문제에서는 종료 지점이 정해져 있지 않는 것입니다. 문제는 단순하지만 종료지점이 모호하여 저도 문제를 어떻게 해결할지 고민을 많이 했습니다. 이런 형식의 문제는 따로 종료 조건이 없기 때문에 입력에서 더이상 읽을 데이터가 없을 때 반복문을 종료해야 합니다. Scanner의 메소드 중 public boolean hasNextInt()
를 사용하여 입력을 확인해야 합니다.
boolean hasNextInt()
메소드는 Scanner에서 int를 입력받은 경우 true를 반환하고 그외의 경우에는 false를 반환합니다.
이와 비슷한 boolean hasNext()
메소드도 있습니다. hasNext() 메소드는 다음에 가져올 값이 있으면 true, 없으면 false를 반환합니다. java 11 api 에서 제공하는 설명을 통해 두 메소드의 정의를 알아보겠습니다.
문제 자체는 어렵지 않았지만 입력에서 더이상의 읽을 수 있는 데이터가 없을 때 어떻게 문제를 해결해야 하는지를 알 수 있는 문제였습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()){
int A = sc.nextInt();
int B = sc.nextInt();
System.out.println(A + B);
}
}
}