오늘은 while문 문제의 10951번 문제를 정리해보려 합니다.
앞의 10952문제랑 비슷한내용의 문제인데 뭐가 다르지? 해서 봤더니 앞의 10952문제와는 다르게 이번 문제는 테이스 케이스의 개수를 정해주질 않았습니다.
이 말은 종료 조건이 없어 무한 반복된다는 말입니다. 이럴땐 어떻게 해야할지 문제부터 확인해봅시다.
문제는
https://www.acmicpc.net/problem/10951
10951번: A+B - 4
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
여기서 확인하시면 됩니다.
문제풀이
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);
}
}
}
앞서 말했듯이 이 문제는 종료 조건이 따로 명시되어 있지 않습니다. 이 경우 프로그램을 정상적으로 종료하려면 뒤의 데이터가 없음을 나타내야하는데 이걸 EOF (End Of File)이라고 합니다.
JAVA에서는 이럴때 hasnext() 또는 next()를 사용하는데 이 두개의 차이는 반환되는 타입이라고 보시면 됩니다.
hasnext()는 boolean 타입으로 True or False를 반환시키고
next() 는 매개변수, iterator 즉 아무 타입으로 반환할 수 있습니다.
여기서는 while문을 사용하여 hasNext()구문을 써서 뒤에 값이 더 없을 경우 false를 반환시켜 반복문을 끝내줌으로서 문제를 풀어주면 됩니다.
'Algorithm > Baekjoon' 카테고리의 다른 글
[Baekjoon] 백준 8958 OX퀴즈 - java (2) | 2021.07.19 |
---|---|
[Baekjoon] 백준 1546 평균 - java (0) | 2021.07.18 |
[Baekjoon] 백준 1157 단어공부 - java (0) | 2021.07.12 |
[Baekjoon] 백준 1110 더하기 사이클 - java (0) | 2021.07.11 |
[Baekjoon] 백준 10871 X보다 작은 수 - java (0) | 2021.07.10 |