2941번
1.한 문자씩 비교해서 맞는지 확인
2. count ++
3. if) 두글자, 세글자 이면 그게 한글자로 되므로
배열 i 를 ++, i= i+2 // i+=2 해주기
1316
1. 알파벳 배열과 이전 배열을 0으로 초기화
2. 입력 문자가 이전 문자와 같지 않고 +
3. 이미 나온 문자면 함수 종료 (return 0;)
4. 아니라면 알파벳 배열에 1로 초기화하고
5. 이전문자가 아니면 현재 문자 저장
// char prev_char = '\0'; // == 0 배열 초기화방법
// for 문안에 scanf 랑 그룹배열인지 확인하는 함수를 같이 둔다면 한 단어씩 끊을 수 있음
// scanf : 입력할때마다 이전 단어가 아닌 새로운 단어로 덮어쓰여짐
// alphabet[word[i] - 'a'] 알파벳을 몇번째 인지 확인
#include <stdio.h>
#include <string.h>
int is_group_word(char word[]) {
int alphabet[26] = {0};
char prev_char = '\0';
for (int i = 0; word[i] != '\0'; i++) {
if (prev_char != word[i]) {
if (alphabet[word[i] - 'a'] == 1) {
return 0;
}
alphabet[word[i] - 'a'] = 1;
}
prev_char = word[i];
}
return 1;
}
int main() {
int N, group_count = 0;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
char word[101]; /
scanf("%s", word); // 여기 scanf
if (is_group_word(word)) { // 여기 그룹검사확인
group_count++;
} // 한 for 문 안에 가둠
}
printf("%d\n", group_count); // 그룹 단어의 개수 출력
return 0;
}
'C언어 > 백준' 카테고리의 다른 글
2738번, 2566번, 2563번, 2745번 (0) | 2024.11.14 |
---|---|
25206번 (1) | 2024.11.13 |
10988번, 1157번 (0) | 2024.11.13 |
11718번 (0) | 2024.11.10 |
5622 (0) | 2024.11.09 |