풀만한 문제였다
그룹 단어를 체크하는 함수를 만들고, 내부에서 checker를 이용해 그룹단어인지 확인해주면 된다.
이때, 알파벳이 연속해서 나오는 경우, 커서를 이동하듯이 i++를 통해 다음 문자를 연속적으로 읽으면 되고
같은 알파벳이 연속하지 않고 끊어져서 나올 떄는 checker == 1을 통해 확인해서 0을 return 하도록 했다
그룹단어라면 1을 return 한다
0과 1을 return 하면 count에 더해지고, 총 그룹단어의 개수가 나온다.
#include <stdio.h>
#include <string.h>
char group_word(char*);
int main()
{
int N;
while (scanf("%d", &N) != 1) continue;
char str[101] = "";
int count = 0;
for (int i = 0; i < N; i++)
{
while (scanf("%s", &str) != 1) continue;
count += group_word(str);
}
printf("%d", count);
}
char group_word(char* str)
{
const int num_to_alpha = 'a';
char checker['z' - 'a' + 1] = { 0, };
char str_len = strlen(str);
for (int i = 0; i < str_len; i++)
{
int index = str[i] - num_to_alpha;
if (checker[index] != 1)
checker[index] = 1;
else
return 0;
while (str[i] == str[i + 1])
i++;
}
return 1;
}