[백준] 1152번

park jinwoo·2022년 12월 25일
0

백준

목록 보기
66/94

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

영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.

<script>
#define _CRT_SEUCRE_NO_WARNING
#include <stdio.h>
#include <string.h>

int main(void) {

    int i, count = 0;
    char input[1000001];

    scanf("%[^\n]", input);

    if (strlen(input) == 1) {
        if (input[0] == ' ') {
            count -= 1;
        // 문자열의 길이가 1이고 해당 값이 ' '(공백)일때 count를 1 줄여 단어의 수로 포함하지 않게 한다.
        }
    // 문자열의 길이가 1인 경우
    }

    for (i = 1; i < strlen(input) - 1; i++) {
        if (input[i] == ' ') {
            count++;
        }
    // input[0]과 input[마지막]은 제외하고 공백의 개수를 세아린다. (처음과 끝에 공백이 들어오는 것을 제외하기 위해)
    }

    printf("%d", count + 1);
    //단어의 수는 공백의 수 보다 1 높다. 단어4개 => 공백3개 그래서 공백의 수인 count에서 1을 늘려준다.

    return 0;
}
</script>

0개의 댓글