본문 바로가기
공부기록/[Algorithm]

백준 1152번 <단어의 개수> - C++

by RiverWon 2024. 8. 3.

생각


문장을 입력받고 단어의 개수를 출력해야 한다.

1. 공백을 기준으로 단어를 세기 때문에, getline을 사용해야 한다.

2. 한 문장만 입력하면 되므로 getline사용 시 주의점인 cin과 getline 혼용인 버퍼에 \n이 남아 cin.ignore()을 굳이 할 필요는 없다.

3. 반복문을 돌며 공백의 개수를 세고, +1을 해 주면 단어의 개수이다.

4. 문장 시작이나 끝에 공백이 있으면, cnt--를 해 준다.

#include <iostream>
#include <string>

using namespace std;

int main() {
  int cnt = 0;
  string var;

  getline(cin, var);

  for(int i=0; i<var.length(); i++){
    if(var[i] == ' '){cnt++;}
  }

  if(var[0] == ' '){cnt--;}
  if(var[var.length()-1] == ' '){cnt--;}
  cout << cnt+1;
  
}