728x90
반응형

블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다.


문제 설명

  • 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. (이 문자열의 길이는 1,000,000을 넘지 않는다.)
  • 단어는 띄어쓰기 한 개로 구분되며, 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
  • 단어의 개수를 출력하는 프로그램을 작성하시오. (단, 한 단어가 여러 번 등장하면 모두 세어야 한다.)

풀이 전략

  • 띄어쓰기 입력을 받기 위해 getline() 사용
  • 공백을 기준으로 새 단어가 나왔을 때 카운트 증가

소스 코드

#include <iostream>
#include <string>

using namespace std;
int main()
{
	int result = 0;
	bool flag = false;
	string str;
	getline(cin, str);

	for (int i = 0; i < str.length(); ++i)
	{
		if (str[i] == ' ')
			flag = false;
		else if (!flag)
		{
			flag = true;
			++result;
		}
	}

	cout << result;
}

링크

https://www.acmicpc.net/problem/1152

 

1152번: 단어의 개수

첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한

www.acmicpc.net

 

728x90
반응형

'문제풀이 > BOJ' 카테고리의 다른 글

[C++ 백준] 2775 부녀회장이 될테야  (0) 2021.05.23
[C++ 백준] 1193 분수 찾기  (0) 2021.05.22
[C++ 백준] 1316 그룹 단어 체커  (0) 2021.05.16
[C++ 백준] 2908 상수  (0) 2021.05.15
[C++ 백준] 5622 다이얼  (0) 2021.05.14