본문 바로가기

Algorithm

백준 10822 더하기

반응형

문제

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

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

입력

첫째 줄에 문자열 S가 주어진다. S의 길이는 최대 100이다. 포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다.

출력

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

 

전에 해봤던 알고리즘이였다. ,가 찍히기 전까지 string에 정수를 저장시키고 그것을 int형으로 변환해서 sum에 덧셈 누적 후에 출력.

stoi는 c++14이상 부터 가능하므로 컴파일이 안된다면 atoi에 스트링.c_str사용 할것 스트링을 char객체로 변환하여 그것을 int형으로 바꾸는 연산 결론적으로는 같음.

 

 

 

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


int main(void)
{

string str,temp;

int sum=0;


cin >> str;

for(int i=0; i<str.size(); i++)
{  

if(str[i]<='9'&&str[i]>='0')
{
temp += str[i];
}
if(str[i]==','||i==str.size()-1)
{  
sum += atoi(temp.c_str());
temp.clear();

}

}

cout<<sum;

}

반응형

'Algorithm' 카테고리의 다른 글

백준 11004번 K번째 수  (0) 2019.07.20
백준 1773번 폭죽쇼  (0) 2019.07.19
백준 5430 AC  (0) 2019.07.17
백준 1966 프린터 큐  (0) 2019.07.17
백준 9012 괄호  (0) 2019.07.16