Dolphins의 HelloWorld
[백준]Baekjoon10823(String 활용) 본문
풀이
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