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 |