본문 바로가기

카테고리 없음

2024년 2학기 C언어 1주차

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

int group(char* word) {
    int  button[26] = { 0 };  
    int len = strlen(word);

    for (int i = 0; i < len; i++) {
        if (button[word[i] - 'a']) {  
            if (word[i] != word[i - 1]) {  
                return 0;
            }
        } else {
            button[word[i] - 'a'] = 1;  
        }
    }
    return 1;  
}

int main(void) {
    int n;
    int count = 0;
    char arr[100][100];

    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%s", arr[i]);
        if (group(arr[i])) {
            count++;
        }
    }

    printf("%d\n", count);

    return 0;
}

1.조건에 따라 단어를 담을 수 있는 [100][100]크기의 배열을 만들어둔다.

2.for문으로 단어를 입력받는다. 받을 때 마다 그룹단어인지 체크한다.

2-1.단어가 연속인지 아닌지 체크할 배열 button을 만든다.

2-2.button이 0이면 이전에 단어가 들어온적이 없으며 1이면 들어온 적이 있다. 만약 1일 때 같은 단어가 들어오면 함수가 종료된다.

3.그룹단어일경우 count에 횟수를 추가하며 완료한다.

 

#include <stdio.h>

int main(void) {
    int num, count = 0;
    
    scanf("%d", &num);
    
    for (int i = 5; i <= N; i *= 5) {
        count += num / i;
    }
    
    printf("%d\n", count);
    
    return 0;
}

이번 문제는 gpt의 도움을 받았습니다...

 

1.숫자를 입력받는다.

2.for문을 이용하여 0의 개수를 센다. 이때 0의 개수는 10으로 얼마나 나눠지는지에 따라 결정된다.

2-1.10대신 10의 약수인 2와 5의 곱이 10이 되는 걸 이용한다.

2-2.이때 2보다는 5가 덜 나오기에 5를 이용한다.

3.5의 배수로 얼마나 나눠지는지 확인한다.

4.출력한다.