728x90
백준 단계별 문제풀이 3단계 (반복문)
https://www.acmicpc.net/problem/10951
# 문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
# 예제
입력
1 1
2 3
3 4
9 8
5 2
출력
2
5
7
17
7
# 필요개념
겉보기엔 그냥 입력받아서 덧셈연산을 하면 되는 문제이지만, 이 문제의 특이점은 입력 개수가 명시되어있지 않다는 것이다. while문이나 for문을 쓸 때 반복문을 멈추는 조건이 필요하다. for문을 쓸 땐 입력 개수가 필요하고, while문을 쓸 땐 break 조건이 필요한데, 이 문제에는 그런 정보가 없다. 그래서 읽을 수 있는 값이 없으면 멈추도록 설계를 해야한다.
이렇게 읽을 수 없는 데이터가 없는 경우에는 EOF를 사용한다.
EOF
EOF는 End Of File 의 약자이다. 읽을 수 있는 데이터가 없는지를 확인하려면 입력을 받을 때 쓰는 Scanner나 Bufferedreader를 확인해야한다.
- Scanner
- 스캐너 클래스에서는 hasNext() 메소드를 사용하면 된다. 출력 타입은 boolean이다.
- 이 메소드를 while문에 넣으면 된다.
- BufferedReader
- hasNext처럼 명확한 메소드가 없어서 readLine()이 null 인지를 보면 된다. 코드는 아래와 같이 작성한다.
- (input = br.readLine()) != null
나는 이 문제에서 Scanner를 사용하였다/.
# Code
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);
}
}
}
# 결과
'코딩테스트 > 백준 브론즈,실버' 카테고리의 다른 글
[백준] 10989 : 수 정렬하기 3 (Counting sort) - JAVA (1) | 2024.01.29 |
---|---|
[백준] 2751 : 수 정렬하기 (Collections.sort()와 Arrays.sort()) - JAVA (1) | 2024.01.27 |
[백준] 2908 : 상수 (StringBuffer vs StringBuilder) - JAVA (0) | 2024.01.26 |
[백준] 9506 : 약수들의 합 (List 활용) - JAVA (1) | 2024.01.23 |
[백준] 2501 : 약수 구하기 (StringTokenizer 활용하기) - JAVA (1) | 2024.01.23 |