본문 바로가기
C/Baekjoon

[BOJ] 1주차 - #1152

by 단월໒꒱ 2022. 1. 2.

#1152

 

[문제]

 

 

 

[코드]

 

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

int main() {
    int len;
    int cnt = 0;
    char str[1000000];
    
    scanf("%[^\n]", str);
    len = strlen(str);
    
    if (len == 1) {
        if (str[0] == ' ') {
            printf("0\n");
            return 0;
        }
    }
    
    for (int i = 0; i < len - 1; i++) {
        if (str[i] == ' ' && i != 0) cnt++;
    }
    
    printf("%d\n", cnt + 1);
    
    return 0;
}

 

 

[설명]

입력받을 문자열 str, 문자열의 길이 len, 단어의 개수를 나타낼 cnt를 선언해준다.

scanf로 문자열 str을 입력 받는데, 여기서 입력받을 문자열에 공백 등이 들어가므로 %[^\n] 포멧형을 이용해서 엔터 전까지의 내용을 저장해준다.

입력받은 문자열의 길이가 1이고 공백일 경우 0을 출력해준다. (return 0;은 0을 출력하고 정상 종료를 위해 넣어주었다.)

문자열을 처음부터 끝까지 훑으면서 문자가 공백이고 i가 0이 아닐 경우 cnt값에 +1을 해준다.

이런식으로 한 뒤 최종적으로 cnt값에 +1을 한 값을 출력하면 원하는 값을 얻을 수 있다.

 

 

'C > Baekjoon' 카테고리의 다른 글

[BOJ] SISS 겨울방학 스터디 - 4주차  (0) 2022.01.22
[BOJ] SISS 겨울방학 스터디 - 3주차  (0) 2022.01.14
[BOJ] SISS 겨울방학 스터디 - 2주차  (0) 2022.01.08
[BOJ] 1주차 - #1157  (0) 2022.01.02
[BOJ] 1주차 - #1330  (0) 2022.01.02

댓글