본문 바로가기

Algorithm

(C++) - 백준(BOJ) 11024번 : 더하기 4

반응형

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

 

11024번: 더하기 4

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, N(1 ≤ N ≤ 100)개의 수가 공백으로 구분되어서 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 또, 0으로 시작하는 수는 주어지지 않는다.

www.acmicpc.net

문자열 입력문제였습니다.

cin >> t;
cin의 입력버퍼에는 정수 t와 \n이 들어간다 이 새퀴는 프로그램 종료 전까지 안 없어집니다. 따라서 getline()에서
인자입력을 default로는 \n으로 구분하기 때문에 cin의 입력버퍼를 비워줘야 됩다.

cin의 입력버퍼를 비워주는 함수는 ignore()로써 cin 객체 안에 정의되어 있는 함수입니다. 따라서 사용할 때는 cin.ignore()이런식으로 사용하면 됩니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <string>
using namespace std;
int main() {
    int t;
    cin >> t;
    //cin의 입력버퍼에는 정수 t와 \n이 들어간다 이 새퀴는 안 없어진다 따라서 getline()에서
    //인자입력을 default로는 \n으로 구분하기 때문에 cin의 입력버퍼를 비워줘야 된다.
    cin.ignore();//cin의 입력버퍼를 비워주는 함수이다.
    while (t--)
    {
        string n;
        int sum = 0;
        getline(cin, n);
        string tmp = "" ;
        int nlen = n.size();
        for (int i = 0; i < nlen; i++) {
            tmp += n[i];
            if(n[i]==' '|| i==nlen-1)
            {
                sum += stoi(tmp); 
                tmp = "";
            }
        }
        cout << sum << '\n';
    }
}
cs