https://www.acmicpc.net/problem/1152
공백을 포함한 문자열을 받을 때는
getline(cin, string변수);
이와 같이 사용한다. 다만 이를 다른 입력과 함께 사용할 경우 버퍼에 개행이 포함되어 개행이 누락되는 경우가 있기 때문에 조심해야 한다. 이 문제의 경우에는 입력을 한 번만 받기 때문에 상관이 없었지만, 조심해야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include<iostream> #include<string> using namespace std; int main(void) { char chr[1000001]; //cin >> str; string str; getline(cin, str); int cnt = 0; bool findOne = false, findSpace = false; //첫번째 단어를 찾았는지, 현재 공백이 등장한 상태인지 for (int i = 0; i < str.length(); i++) { if (!findOne && str[i] != ' ') { findOne = true; cnt++; continue; } else if(findOne) { if (str[i] == ' ') findSpace = true; else { if (findSpace) { cnt++; findSpace = false; } } } } cout << cnt << '\n'; return 0; } | cs |
'알고리즘 문제 풀이 > 백준 온라인 저지' 카테고리의 다른 글
백준 11724번: 연결 요소의 개수 (C++) (0) | 2019.09.25 |
---|---|
백준 11403번: 경로 찾기 (C++) (0) | 2019.09.25 |
백준 2193번: 이친수 (C++) (0) | 2019.09.19 |
백준 1003번: 피보나치 함수 (C++) (0) | 2019.09.19 |
백준 9095번: 1,2,3 더하기 (C++) (0) | 2019.09.19 |