[백준1152] 단어의 개수

준블리·2021년 11월 23일
1

백준

목록 보기
4/8

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

1. 문제 이해

공백이 포함되어 주어진 문자열에서 몇 개의 단어가 있는지 체크하는 단순한 문제 !

2. 소스 코드

#include<iostream>
#include<string>
using namespace std;
int main() {
	string val;
	getline(cin, val);
	
	int channel = 0; // 상태값이다. 이전에 1이였으면 지금까지 문자였었다는 얘기다.
	int word_cnt = 0;
	for (int i = 0; i < val.size(); i++) {
		if (val[i] == ' ') {
			if (channel == 1) {
				channel = 0;
			}
		}
		else {
			if (channel == 0) {
				channel = 1;
				word_cnt++;
			}

		}

	}
	cout << word_cnt << endl;


	return 0;

}

3. 생각한 풀이 방식

푸는 알고리즘은 생각보다 간단했다!
체크하는 변수를 하나 세워두고, 공백일 때 이걸 왔다갔다하면서 카운팅하는 방식으로 풀었다

4. 얻어가는 Tip

cin 은 공백을 입력받을 때 문장에 끝이라고 생각하기 때문에, 이 문제와 같은 경우에는 getline(cin , 문자열) 이것을 활용해야했다.
자주 사용할 일은 없겠지만, 가끔 사용할 일이 있을테니 기억은 해두자!

getline(cin,문자열)

profile
★ 작심삼일을 삼일에 한번씩 ★ 주로 C++ 입니다~

0개의 댓글