핵심 아이디어

<aside> 💡

공백은 하나만 생긴다는 점을 이용하여

$\text{공백의 개수}+1$ 이 정답이 된다는 것을 알 수 있다.

이때 문자열의 첫 부분, 마지막 부분의 공백은 개수에서 제외해야 한다.

</aside>


코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

char arr[1000001] = { 0, };

int main() {

    size_t end;
    int a = 0;

    gets(arr);

    end = strlen(arr);

    for (int i = 0; i < end; i++) {
        if (arr[i] == ' ') {
            a++;
        }
    } 
    a++;

    if (arr[0] == ' ') {
        a--;
    }
    if (arr[end - 1] == ' ') {
        a--;
    }
    printf("%d", a);

    return 0;
}