잡동사니/[2022] 회로이론
[백준/C] 1152번 단어의 개수
heylo
2022. 12. 11. 02:12
https://www.acmicpc.net/problem/1152
1152번: 단어의 개수
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열
www.acmicpc.net
1. 공백의 개수로 단어의 개수를 센다
2. 앞 뒤 공백은 단어 개수로 처리하지 않는다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 1000001
int main(void) {
int cnt = 0;
char str[MAX];
scanf("%[^\n]", str); // ["%^\n"]은 엔터가 나올때까지 문자열로 받는다는 말이다( 공백도 포함 )
int len = strlen(str);
// 공백이 하나일 때 cnt = 0
if (len == 1 && str[0] == ' ') {
printf("0");
return 0;
}
for (int i = 1; i < len-1; i++) {
// 공백의 갯수로 단어의 갯수를 체크하는데
// 처음과 끝에 공백이 들어오면
// int를 1 로 지정하고 끝나는 지점은 len - 1 을 해주어
// 처음과 끝의 공백은 단어로 카운트하지 않는다.
if (str[i] == ' ') cnt++;
}
printf("%d", cnt+1);
return 0;
}