문제

영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.

1152번: 단어의 개수

Write-up

빈칸 기준으로 끊어세면 문장 내 단어의 갯수를 셀 수 있을거라 생각했다.

그러기 위해 getline을 통해 문장을 받아내고 stringstream으로 빈칸마다 끊어내서 count했다.

결과 코드는 다음과 같다.

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main(void)
{
    string str, token;
    int count = 0;

    getline(cin, str); // input
    stringstream ss(str);
    while (ss >> token) // slice with space
    {
        count++;
    }

    cout << count << endl;
    return 0;
}