#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.출력한다.