본문 바로가기

Algorithm/문자열 처리

BaekJoon 1152 단어의 개수

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

소스 결과 4880KB / 36 ms

출처 BackJoon

 

설명

단어의 개수를 헤아리는 문제

 

공백이 연속으로 나올 수 없기에 공백에 대한 처리는 문자열의 맨 앞과 끝만 처리 하면 간단한 문제

 

알고리즘

1. 맨 앞자리가 공백인지 확인

2. 맨 끝자리가 공백인지 확인

3. 문자열에서 공백의 개수를 카운트

4. 공백의 개수 + 1 - (맨 앞자리 공백시 1) - (맨 끝자리 공백시 1)

5. 출력

 

소스코드

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>

using namespace std;

int main()
{
	string sentence;
	bool firstSpace = false;
	bool lastSpace = false;
	int count = 0;

	getline(cin, sentence);

	if (sentence[0] == ' ')
		firstSpace = true;
	if (sentence[sentence.length() - 1] == ' ')
		lastSpace = true;

	for (int i = 0; i < sentence.length(); i++)
	{
		if (sentence[i] == ' ')
			count++;
	}

	cout << count + 1 - firstSpace - lastSpace;

	return 0;
}

 

'Algorithm > 문자열 처리' 카테고리의 다른 글

Baekjoon 6324 URLs  (0) 2019.03.08
BaekJoon 2864 5와 6의 차이  (0) 2019.01.29
BaekJoon 1157 단어 공부  (0) 2019.01.17
BaekJoon 1475 방번호  (0) 2019.01.17
BaekJoon 8595 히든넘버  (0) 2019.01.02