프로그램 언어/BaekJoon

입출력_문제_1

찬영_00 2022. 6. 14. 21:11
728x90

백준 10951

문제

https://www.acmicpc.net/problem/10951

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net


방법.

 

이 문제는 받는 수의 끝을 알 수 없기에 입력에서 더 이상 읽을 데이터가 존재하지 않을 때 반복문을 끝내면 된다.

 


처음에 내가 풀었던 방식.

#include <iostream>

using namespace std;

int main() {
    int a, b;
    while (!cin.eof()) {
        cin >> a >> b;
        cout << a + b << '\n';
    }
    return 0;
}

이러한 방식으로 풀었지만 결국 풀지 못했다. 


문제점.

 

코드의 끝나는 시점을 정확히 알지 못한점이다.

 

예를 들어 a, b를 총 4번 적었을 경우 마지막 4번까지 읽고 종료가 아닌 한번 더 읽을 경우 eof되기 때문에

한번 더 값을 출력하게 된다.

 

a = 1, b = 1 출력 2
a = 1, b = 4 출력 5
a = 1, b = 3 출력 4
a = 1, b = 2 출력 3
eof 출력 3
true 반환 출력 x

 

위에 표처럼 출력이 총 5번이 된다.

 

따라서 밑의 코드처럼 해주면 해결이 된다.


해결 코드.

#include <iostream>

using namespace std;

int main() {
    int a, b;
    while (!(cin >> a >> b).eof()) {
        cout << a + b << '\n';
    }
    return 0;
}

728x90

'프로그램 언어 > BaekJoon' 카테고리의 다른 글

벌집  (0) 2025.03.02
DP(Dynaminc Programming)- 4  (1) 2022.07.26
DP(Dynaminc Programming)-3  (0) 2022.07.05
DP(Dynaminc Programming)-2  (0) 2022.06.27
DP(Dynaminc Programming)-1  (0) 2022.06.23