
1. 틀리게 된 이유.
"입력은 여러 개의 테스트 케이스로 이루어졌다." 라는 조건이 있으므로, 몇 개의 테스트 케이스를 사전에 미리 정한 것이 아닌 계속해서 테스트 케이스를 입력하여 결과를 출력하게끔 하는 것이라고 이해했기에 while문을 이용해 무한 루프를 돌려주었다. 하지만 그 결과 출력초과로 인해 답이 틀렸다고 채점결과가 뜨게 되었다.
출력초과라는 말이 나온다는 것은 내가 문제의 조건보다 더 광활하게 잡았을 가능성이 크다.
그렇다면 while문에 무슨 조건을 넣어야 출력초과라는 말이 걸리지않고 문제 조건을 만족할 수 있을까
2. 필요한 개념
EOF라는 것에 대해 알고있어야 풀 수 있는 문제였다.
EOF란 End Of File 을 뜻하며 파일의 끝을 표현하기 위해 사용하는 상수다.
3. 고친 코드
#include <iostream>
using namespace std;
int main(){
int a; int b;
while(cin >> a >> b){
cout << a+b<<endl;
}
return 0;
}
while문의 조건에 cin을 넣을 수 있다는 것을 처음 알게 되었다.
a와 b값을 받는 cin이 종료되기 전까지 계속해서 while문에 들어있는 코드를 실행하겠다는 의미로 해석된다.
'프로그래밍 언어 💬 > C++' 카테고리의 다른 글
[백준] 2439번, 2440번, 2441번 [별찍기 (1)] (0) | 2020.12.31 |
---|---|
문자열을 나타내기 위한 클래스 "string" (0) | 2020.12.30 |
[백준] 11720번 (0) | 2020.12.26 |
[백준] 10953번 (0) | 2020.12.26 |
C언어 기초-포인터(1) (0) | 2020.10.31 |