Algorithm/Baekjoon

[Baekjoon] 백준 10951 (A + B - 4) - java

담크 2021. 7. 15. 23:59

오늘은 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를 반환시켜 반복문을 끝내줌으로서 문제를 풀어주면 됩니다.