BOJ/C++ 단어의 개수 IamToday 2020. 3. 2. 17:25 *공백만으로 이루어진 단어인 경우 -> 0 *앞 뒤로 공백이 하나씩 있는 경우 -> cnt+1 *맨앞에 공백이 있는 경우 ->cnt+1 *맨 뒤에 공백이 있는 경우 ->cnt *공백이 하나도 없는 경우 -> 1 #include <iostream> #include <vector> #include <string> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); string s; getline(cin, s); //cin.ignore(); int cnt = 0; bool flag = false; for (int i = 0; i < s.size(); i++) { //맨 앞이 공백인 경우에는 단어의 개수로 세지 않는다. if (i == 0 && s[i] == ' ') continue; else if (s[i] == ' ') { //현재 공백을 가르키고 있을 때 if (i == s.size() - 1) { //맨 마지막 글자가 공백인 경우에는 공백의 개수가 단어의 개수가 된다. flag = true; ++cnt; } else ++cnt; } } if (!cnt) { //공백하나만 주어진경우와 공백이 하나도 없는 경우 if (s == " ") cout << cnt << '\n'; else cout << 1 << '\n'; } else { //맨 끝자리가 공백인 경우에는 공백의 개수가 단어의 개수가 된다. if (flag) cout << cnt << '\n'; else cout << cnt + 1 << '\n'; //그 외에는 공백의 개수 +1 은 단어의 개수 } return 0; } 공유하기 게시글 관리 나는 오늘, 'BOJ > C++' 카테고리의 다른 글 이동하기 (0) 2020.03.02 할로윈묘지 (0) 2020.03.02 역사 (0) 2020.03.02 통나무 옮기기 (0) 2020.02.29 로봇청소기 + 테스트케이스 (0) 2020.02.29 'BOJ/C++' Related Articles 이동하기 할로윈묘지 역사 통나무 옮기기