백준 algorithm

백준 1152 - 단어의 개수

cosmohoo 2020. 3. 18. 23:31
반응형

문제 설명

 

 

=> 공백이 포함된 string이므로 getline함수를 써야한다. 

=> 예외처리를 신경써야하는 문제이다. 

 

1. 맨앞이 ' ' 인 경우 
2. 맨뒤가 ' '인 경우
3. 아무것도 없는 string을 받은 경우 
4. 길이가 1인 string일 때, 문자 혹은 ' ' 가 있는 경우

 

더욱 간단하게 풀 방법이 있지만 직관적으로 보이게 하기 위해 코딩을 하였다. 

 

 

 

 

 

#include <iostream>
#include <string>
using namespace std;


int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    
    string s;
    getline(cin,s);
    int cnt=0;

    int length = s.length();
    if(length < 1)
    {
        cout <<0<<'\n';
    }
    else if(length == 1)
    {
        if(s[0]== ' ')
        cout <<0<<'\n';
        else cout<<++cnt<<'\n';
    }
    else{
        for(int i=0; i<length-1; i++)
        {
            if(i==0)
            {if(s[i]==' ')continue;}
            else
            {if(s[i] == ' ')cnt++;
            else continue;
            }
        }
        cout << ++cnt<<'\n';
    }
    return 0;
}
반응형