본문 바로가기

알고리즘/백준 문제풀기

BOJ 백준 1152 단어의 개수 <문자열 처리>

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


< 단어의 개수 >


 이 문제는 C++의 cin과 string을 이용하면 보다 간결하고 짧은 코드로 풀 수 있는 문제이다.


맨 앞과 마지막에도 공백이 들어오므로 단어의 개수를 셀 때 띄어쓰기를 이용하는 방법으로 문제를 푼다면


맨 앞과 마지막의 공백은 고려하지 않도록 하여 문제를 풀어야 한다.


C++의 표준 입력 함수인 cin은 표준 입력 버퍼에서 개행 문자를 제외한 값을 가져온다.


이 말은 space(띄어쓰기)를 기준으로 각 단어를 끊어서 입력을 받아오는 것이다.


아래와 같이 코딩을 한다면


string s;


while(cin >> s)

{

cout << s << '\n';

}


ABC DEF GHI 라고 입력했을 때 결과는 아래와 같다.


ABC

DEF

GHI


즉 문장을 입력했을 때 각각의 단어들을 따로따로 입력받아오는 것이므로 간단하게 단어의 개수를 구할 수 있다.


#include <iostream>
#include <string>
using namespace std;

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int cnt = 0;
	string s;

	while (cin >> s)
	{
		cnt++;
	}
	cout << cnt << '\n';

	return 0;
}