[백준/C++]#10951 - A + B (입력개수 x)

2021. 1. 11. 18:16필요/코딩테스트(백준)

풀이

#include <iostream>
using namespace std;

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

C++ 개념

 

C++에서는 #include <iostream> 라이브러리를 사용한다.

이는 input output stream을 의미하고, 이를 통해 cin, cout을 사용할 수 있게 된다.

그리고 namespace를 사용하는데, 이 특징으로 C++이 객체지향적 특징을 갖게 된다.

input과 output은 다음과 같이 받는다.

cin >> 변수1 >> 변수2;

cout << (출력할 내용);

추가로 cout << (출력내용) << '\n';

또는 cout << (출력내용) << endl;

를 사용해서 줄바꾸기를 할 수 있다.

 


 

문제에서 특이한 점은 따로 테스트 케이스의 개수를 입력받지 않는다는 것이다. (앞선 #10950과 차이점)

이렇게 입력이 몇 개인지 주어지지 않는 경우, 입력을 EOF(End Of File)까지 받는다.

C++에서는 위처럼 while 반복문안에 input을 받는 식을 넣어주었는데, 이 식 자체의 return 값을 활용해 문제를 해결하였다.


 

백준 강의에 따르면 C의 경우 while (scanf("%d %d", &a,&b) == 2) 로 문제를 해결 할 수 있다.

그리고 Java의 경우 while (sc.hasNextInt()) 를 사용한다.

 

C는 C++의 해답과 사실상 동일한 것 같다. 좀 더 명확한 case를 구별하므로 좀 더 디테일한 구별이 가능하다고 생각된다. Java의 경우 sc 객체의 Scanner 클래스 메소드를 사용해 해결된다.