c++

백준 c++ 1152 문제 풀이

psb08 2025. 4. 7. 08:02
728x90
반응형

문제 링크 : https://www.acmicpc.net/problem/1152

목차

1. 설명

 

2. 내 코드

 

3. 문제 풀이 해석 내용

 

4. 실행 결과

 

설명

백준 브론즈 2 문제 입니다.

문제명 : 단어의 개수

 

내 코드

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

int main()
{
	string str;
	getline(cin, str);

	int cnt = 1;

	for (int i = 1; i < str.length() - 1; i++)
	{
		if (str[i] == ' ')
		{
			cnt++;
		}
	}

	if (str == " ")
	{
		cnt = 0;
	}

	cout << cnt;

}

 

문제 풀이 해석 내용

 

문자열 입력 처리

string str;
getline(cin, str);

getline 함수를 사용하여 한 줄의 문자열을 입력받아 str 변수에 저장합니다. 

이 함수는 공백을 포함한 전체 줄을 읽어옵니다.

 

 

단어 수 초기화

int cnt = 1;

단어 수를 세기 위한 변수 cnt를 초기화합니다. 

기본적으로 1로 설정하는 이유는, 입력 문자열이 비어 있지 않으면 최소한 하나의 단어가 있다고 가정하기 때문입니다.

 

 

단어 수 세기

for (int i = 1; i < str.length() - 1; i++)
{
    if (str[i] == ' ')
    {
        cnt++;
    }
}

for 루프를 통해 문자열의 각 문자에 접근합니다. 

i는 1부터 시작하여 문자열의 길이에서 1을 뺀 값까지 반복합니다.
문자열의 각 문자가 공백(' ')일 때마다 cnt를 증가시킵니다. 

 

 

특수 케이스 처리

if (str == " ")
{
    cnt = 0;
}

입력 문자열이 단순히 공백인 경우, 단어 수를 0으로 설정합니다.

 

 

결과 출력

cout << cnt;

최종적으로 계산된 단어 수를 출력합니다.

 

 

실행 결과

 

'c++' 카테고리의 다른 글

백준 c++ 10870 문제 풀이  (0) 2025.04.09
백준 c++ 18870 문제 풀이  (0) 2025.04.08
백준 c++ 11723 문제 풀이  (0) 2025.04.06
백준 c++ 2476 문제 풀이  (0) 2025.04.05
백준 c++ 2562 문제 풀이  (0) 2025.04.04