본문 바로가기
Algorithm/백준

[C++] 백준 1152번: 단어의 개수

by Ruas 2022. 2. 12.
728x90

 

 

1152번: 단어의 개수

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

www.acmicpc.net

 

 

살펴볼 점

1. 문자열 맨 앞의 공백

2. 문자열 맨 뒤의 공백

3. 공백만 입력

4. 단어 하나만 입력

 

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

string input;
int cnt = 1;

int main() {
	getline(cin, input); //'\n' 구분을 위해 getline 사용

	for (int i = 0; i < input.length(); i++) {
		if (input.length() > 1) {
			if (input[i] == ' ') {
				if (i == 0) {
					continue;
				} //문자열 맨 앞의 공백 처리
				else if (i == input.length() - 1) {
					continue;
				} //문자열 맨 뒤의 공백 처리

				else {
					cnt++;
				} //정상적인 단어 카운트
			}
		}
		else {
			if (input[i] == ' ') {
				cnt--;
			} //문자열 맨 앞의 공백 처리
			else {
				cnt = 1; //하나의 단어만 있는 경우
			}
		} //입력된 문자열의 길이가 1보다 적을 때
	}
	
	cout << cnt << "\n";

	return 0;
}

 

728x90

댓글