본문 바로가기

백준 문제 풀이/c++

백준 1152번 "단어의 개수" -- c++

728x90

안녕하세요! 오늘은 백준 1152번 "단어의 개수" 문제를 풀어보겠습니다.

문제 설명

  • 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열에 포함되어 있는 단어의 개수를 출력하는 프로그램을 작성하시오.

입력

  • 첫째 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열 S가 주어진다. (1 ≤ S의 길이 ≤ 100,000)

출력

  • 첫째 줄에 단어의 개수를 출력한다.

풀이 방법

입력으로는 영어 대소문자와 공백으로 이루어진 문자열이 주어집니다. 이 문자열의 길이는 1,000,000을 넘지 않으며, 단어는 공백으로 구분되며, 공백이 연속해서 나오는 경우는 없습니다. 또한 문자열은 공백으로 시작하거나 끝날 수 있습니다.

이 문제를 해결하는 가장 간단한 방법은 문자열을 공백을 기준으로 분리하여 단어의 개수를 세는 것입니다. C++에서는 stringstream을 사용하여 문자열을 쉽게 분리할 수 있습니다.

아래는 이 문제를 해결할 수 있는 C++ 코드입니다:

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

int main() {
    std::string input;
    std::getline(std::cin, input);

    std::stringstream ss(input);
    std::string word;
    int count = 0;

    while (ss >> word) {
        count++;
    }

    std::cout << count << std::endl;

    return 0;
}

이 코드는 먼저 입력으로 받은 문자열을 getline() 함수를 사용하여 한 줄로 입력받습니다. 그리고 stringstream을 사용하여 문자열을 공백을 기준으로 분리한 후, 단어의 개수를 세는 방식으로 문제를 해결합니다. 마지막으로 단어의 개수를 출력합니다.

이렇게 간단한 방법으로 문제를 해결할 수 있습니다.

728x90