반응형
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 |