개발/Algorithm
백준 10951 : A+B-4 (테스트케이스 개수가 주어지지 않는 경우)
워너-비
2018. 2. 10. 18:31
10591 : A+B - 4
테스트케이스 갯수를 입력받지 않는 경우
오늘은 백준 알고리즘 사이트의 10591번 문제에 대해 포스팅 하고자 한다.
일단 먼저 문제 첨부
A+B - 4 성공
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 256 MB | 11254 | 4551 | 3898 | 42.453% |
문제
두 수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A,B < 10)
출력
각 테스트 케이스마다 A+B를 출력한다.
예제 입력
1 1 2 3 3 4 9 8 5 2
예제 출력
2 5 7 17 7
해설
두 정수를 입력받아 합을 출력하는 문제로 간단하나, 입력받을 정수쌍(테스트케이스)의 개수와 종료 조건이 명시돼있지 않다.
따라서 정상적인 프로그램 종료를 위해 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타내야하는 문제가 발생한다.
이런 경우를 파일 끝(End of File, EOF)이라고 한다.
프로그램에서 파일의 끝을 만났음을 알리기 위해 매크로로 정의된 EOF 값을 리턴한다.
풀이
1. C, C++
C언어의 경우 다음 두 가지 방법으로 반복문 처리를 해주면 된다.
1
2 |
while(cin >> a >> b){...}
while(scanf("%d %d", &a, &b) != EOF){...} |
|
소스코드1 (10951.cpp)
1
2
3
4
5
6
7
8
9
10
11
12
13 |
#include <iostream>
using namespace std;
int main (void){
int a, b;
while( cin >> a >> b ){
cout << a+b << endl;
}
return 0;
} |
|
소스코드2 (10951_2.cpp)
1
2
3
4
5
6
7
8
9
10
11
12
13 |
#include <iostream>
using namespace std;
int main (void){
int a,b;
while(scanf("%d %d", &a, &b) != EOF){
cout << a+b << endl;
}
return 0;
} |
|
2. JAVA
JAVA의 경우 반복문 안에 hasNext() 메서드를 활용한다.
본 문제에서는 Int형 변수를 입력받기 때문에 has NextInt() 를 사용해도 무방하다.
소스코드3 (10591.class)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
while(s.hasNextInt()){
int a = s.nextInt();
int b = s.nextInt();
System.out.println(a+b);
}
}
} |
|