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
'백준 문제 풀이 > c++' 카테고리의 다른 글
백준 1181번 "단어 정렬" -- c++ (1) | 2024.02.28 |
---|---|
백준 1157번 "단어 공부" -- c++ (0) | 2024.02.28 |
백준 1085번 "직사각형에서 탈출" -- c++ (0) | 2024.02.28 |
백준 1008번 문제 "A/B" -- C++ (2) | 2024.02.27 |
백준 1001번 문제 "A-B" --c++ (0) | 2024.02.27 |