Algorithm/baekjoon

[백준 1152] 단어의 개수

식빵민 2022. 6. 28. 17:05

문제 : 문자열을 입력하면 단어의 개수를 세는 프로그램을 구현하라.

https://www.acmicpc.net/problem/1152

 

1152번: 단어의 개수

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

www.acmicpc.net

주의 사항

  • 단어는 공백으로 구분된다.
  • 첫 문자와 마지막 문자가 공백으로 주어질 수 있다.
  • 공백은 두개 연속으로 주어지지 않는다.
  • 공백 하나만 입력 될 수 있다.
  • 한 문자인 단어가 하나만 입력 될 수 있다.
#include <iostream>
#include <string>
using namespace std;

string str;
int num;

int main(){
    getline(cin,str);
    if(str.length()==0||(str.length()==1&&str[0]==' ')){cout<<0; return 0;}
    for(int i=0;i<=str.length();i++){
        if(i!=0&&i!=str.length()-1&&str[i]==' ')num++;
    }
    cout<<num+1<<endl;
    return 0;
}

느낀점 

  • 문자열을 입력 받을 때 getline() 함수를 이용해 공백을 포함하여 입력 받을 수 있다는 사실을 알게 되었다.
  • 문자가 하나도 입력되지 않은 경우를 나중에 생각하게 되었는데 예외를 좀 더 빠르게 생각해야 겠다.