Dolphins의 HelloWorld

[백준]Baekjoon10823(String 활용) 본문

Algorithm/baekjoon문제풀이

[백준]Baekjoon10823(String 활용)

돌핀's 2018. 6. 25. 20:58



풀이


while (getline(cin, s)) {

sentence += s;

}


다음의 코드를 통해 문제가 요구하는 만큼의 문자열을 s 변수로 받아 sentence에 계속 이어붙였다.

(모든 입력이 완료되면 Ctrl+Z를 통해 반복문을 빠져나올 수 있다)


문제에 있는 예제입력을 위의 코드를 통해 받으면 최종적으로

sentence = "10,20,30,50,100" 이 될것이다.

,와, 사이의 문자열을 substr 명령어로 분리해서 숫자로 바꾸고 이를 모두 더함으로써 문제를 해결하였다. 



 
#include <string>
#include <iostream>

using namespace std;

int main()
{
	string s;
	string sentence;

	while (getline(cin, s)) {
		sentence += s;
	}

	int first = 0; //substr을 통해 추출할 글자의 시작점
	int result = 0;

	int len = sentence.length(); //문자열의 길이
	for (int i = 0; i < len; i++) {
		if (sentence[i] == ',' || i == len-1) { // 콤마이거나 맨마지막 배열일 때
		result += stoi(sentence.substr(first, i - first +1)); 
                // substr을 통해 first로부터 i-first+1개를 추출한 후 숫자로 변환해 더해줌
		first = i + 1; //콤마 다음의 위치를 다음에 추출할 글자의 시작점으로 지정
		}
	}
	cout << result;
}


'Algorithm > baekjoon문제풀이' 카테고리의 다른 글

[백준]Baekjoon10845(Queue)  (0) 2018.06.26
[백준]Baekjoon10828(스택)  (0) 2018.06.26
[백준]Baekjoon10820(String 활용)  (0) 2018.06.24
[백준]Baekjoon1152(String 활용)  (0) 2018.06.24
[백준]Baekjoon10824 (String활용)  (0) 2018.06.23
Comments