1152 - 단어의 개수

1152 문제 링크

접근법

count를 1로 초기화 시키고 getline과 string 문자열을 사용해 문장을 입력받는다. 그 후에 문자열에서 공백이 확인될때마다 1씩 증가시켜주면된다. 처음에 count를 1로 초기화한 이유는 앞, 뒤에 공백이 없을때 공백 만큼 더해주면 단어의 개수보다 1이 모자라기 때문이다.

같은 이유로 제일앞, 뒤에 공백이 있으면 count에서 1을 빼주면된다.


#include <iostream>

using namespace std;

int count = 1;
int main()
{
    string str;
    getline(cin, str);

    if(str.empty())
    {
        cout << "0";
        return 0;
    }

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


    }
    if(str[0] == ' ')
    {
        count --;
    }

    if(str[str.length() - 1] == ' ')
    {
        count --;
    }


    cout << count;


    return 0;
}

결론

문자열을 입력받아 문자를 검사하는 기본적인 문제라고 생각한다.

업데이트: