백준 10823번 (더하기 2, C++) [BAEKJOON]

문제

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

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
1 초 256 MB 3518 1917 1642 57.093%

숫자와 콤마로만 이루어진 문자열 S가 주어진다.

이때, S에 포함되어있는 자연수의 합을 구하는 프로그램을 작성하시오.

S의 첫 문자와 마지막 문자는 항상 숫자이고, 콤마는 연속해서 주어지지 않는다. 주어지는 수는 항상 자연수이다.

입력

문자열 S가 여러 줄에 걸쳐서 주어진다.

S의 길이는 최대 10,000이다.

포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다.

출력

문자열 S에 포함되어 있는 자연수의 합을 출력한다.

예제 입력 1

plaintext
10,20,
3
0,50
,1
00

예제 출력 1

plaintext
210

알고리즘 분류

출처


통과된 코드

cpp
#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

int result = 0;
string str, temp;

int main()
{
    ios_base::sync_with_stdio(false); // scanf와 동기화를 비활성화
    // cin.tie(null); 코드는 cin과 cout의 묶음을 풀어줍니다.
    cin.tie(NULL);
    cout.tie(NULL);

    while (getline(cin, str)) {
        for (int i = 0; i < str.length(); i++) {
            if (str[i] >= 48 && str[i] <= 57) { // 0 ~ 9
                temp.push_back(str[i]);
            }
            else {
                result += atoi(temp.c_str());
                temp.clear();
            }
        }
    }

    result += atoi(temp.c_str());

    cout << result;

    return 0;
}