Algorithm/Problem Solve

[백준 1152번] 단어의 개수

아네스 2020. 12. 7. 14:17
반응형

www.acmicpc.net/problem/1152

 

1152번: 단어의 개수

첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한

www.acmicpc.net

iterator begin, end의 위치, string erase 사용법, string parsing법 정리하고 더 나은 풀이 찾아보기.

다른사람들 메모리/시간에 비해 너무 높다. 

 


#include <bits/stdc++.h>

using namespace std;

int main(void)
{
    vector<string> vec;
    string str1;
    getline(cin, str1);
    if( str1[0] == ' ' ) str1.erase(str1.begin());
    if(str1[str1.size()-1] == ' ') str1.erase(str1.end()-1);

    size_t previous = 0, current;
    current = str1.find(' ');
    string substring;
    while(current != string::npos)
    {
        substring  = str1.substr(previous, current - previous);
        vec.push_back(substring);
        previous = current+1;
        current = str1.find(' ', previous);
    }
    substring = str1.substr(previous, current-previous);
    
    if(substring.length() !=0) vec.push_back(substring);
    cout << vec.size();
}
반응형

'Algorithm > Problem Solve' 카테고리의 다른 글

[백준 1920번] 수 찾기  (0) 2020.12.11
[백준1874번] 스택 수열  (0) 2020.12.11
[백준1260번] BFS와 DFS  (0) 2020.12.09
[백준 1654번] 랜선자르기  (0) 2020.12.08
[백준 1181번] 단어정렬  (0) 2020.12.07