[BOJ] 백준 #10951. A+B - 4 (C/C++)
예전에 몇번 시도하다 항상 의지박약으로 하다 말던 알고리즘 공부를 무작정 다시 시작했다. 사실 다들 블로그를 추천하길래 기록하고 싶었는데 계속 깃헙블로그 만드는 데서 막히니까 그냥 관둬버렸었는데 드디어 블로그에 첫 포스팅도 완료했으니!!!!! 열심히 해보쟈.
나름 컴공생이랍시고 좀 어려워 보이는 애들부터 시작했더니 하나도 못 풀겠어서,,,^^ 아주 기본적인 것부터 풀어나가려고 한다..ㅎㅎ 정리하면서 한번 더 기억해야 할만한 내용이 있을 때 정리를 할 것이다. 그리고 인프런 권오흠 교수님 강의를 들으면서 틈틈이 기초 복습 및 정리를 할 것이다. 이것도 예전에 하다가 말았던 것들임..ㅋ
🎨 문제
문제 링크: https://www.acmicpc.net/problem/10951
💬 풀이
EOF(End Of File)에 대한 이해가 필요한 문제다. 문제에 ‘입력값(테스트케이스)의 개수‘나 ‘입력을 마치는 조건‘이 따로 없기 때문에, 프로그램의 정상적인 종료를 위해선 EOF 개념을 활용해 입력이 끝나는 조건을 설정해줘야 한다. 더 이상 읽을 데이터가 없음을 나타내야하는 것이다. 안 그러면 ‘출력 초과’ 결과가 뜬다.
EOF는 파일의 끝을 표현하기 위해 매크로 상수 -1로 정의되었으며, 콘솔 입력 시에 Ctrl + z를 입력하면 EOF(파일끝)로 인식된다. 입력이 없을 때 파일을 종료하기 위해서 주로 사용한다.
cin의 리턴값이 뭔지 궁금해져서 구글링해보니, cin은 객체를 반환하지만 예외적으로 if나 while문 안에서는 자동으로 bool로 변환되는 거라고 한다.
― https://skku.goorm.io/qna/4241
👩💻 코드
C++
#include <iostream>
#define endl '\n'
using namespace std;
int main() {
int A, B;
while (cin >> A >> B) {
cout << A + B << endl;
}
return 0;
}
C
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int A, B;
while (scanf("%d %d", &A, &B) != EOF) {
printf("%d\n", A + B);
}
return 0;
}
댓글남기기