728x90

문제

숫자와 콤마로만 이루어진 문자열 S가 주어진다. 이때, S에 포함되어있는 자연수의 합을 구하는 프로그램을 작성하시오.

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

입력

문자열 S가 여러 줄에 걸쳐서 주어진다. S의 길이는 최대 10,000이다. 포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다.

출력

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

예제 입력 1 복사

10,20, 3 0,50 ,1 00

예제 출력 1 복사

210


몇줄로 나뉘어서 들어오는 입력의 모든 수를 합하는 문제다.

하나의 수가 여러줄로 나뉠 수 있다는 점을 주의해야 한다.

예를들어

3

0

0

이런 입력이 들어오면 300으로 인식해야한다.

getline을 통해 연속으로 입력을 받아 ,가 나올때까지 수를 계속 이어더한 후 ,가 나오면 int로 전환해 res값에 더해주면 된다.

 

코드 원본 : https://github.com/chosh95/STUDY/blob/master/BaekJoon/2020/%EB%8D%94%ED%95%98%EA%B8%B02%20(10823%EB%B2%88).cpp

 

chosh95/STUDY

프로그래밍 문제 및 알고리즘 정리. Contribute to chosh95/STUDY development by creating an account on GitHub.

github.com

C++ 코드

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int main()
{
	string str;
	string cur;
	int res = 0;
	while (getline(cin, str)) {
		for (int i = 0; i < str.size(); i++) {
			if (str[i] != ',') cur += str[i];
			else {
				res += stoi(cur);
				cur = "";
			}
		}
	}
	res += stoi(cur);
	cout << res;
}

 

728x90

+ Recent posts