mo1lusca의 블로그
[백준] 1316 그룹 단어 체커 - C 본문
https://www.acmicpc.net/problem/1316
동떨어져있는 문자가 있는지 체크하면 될 것 같다.
#include <stdio.h>
#include <string.h>
int main() {
int n;
scanf("%d", &n);
int cnt = 0;
for (int i = 0; i < n; i++) {
int arr[26] = { 0, };
char s[102];
scanf("%s", s);
int len = strlen(s);
int is_group = 1;
for (int j = 0; j < len; j++) {
if (arr[s[j] - 'a'] == 0 || j == 0) {
arr[s[j] - 'a'] = 1;
}
else if (s[j - 1] != s[j]) {
is_group = 0;
}
}
if (is_group) {
cnt++;
}
}
printf("%d", cnt);
return 0;
}
현재 문자가 앞에서 나온적 없거나 첫번째 글자라면 (무조건 그룹이기에) 배열의 해당 알파벳번째 값을 1로 바꾼다.
만약 현재 문자가 앞에서 나온 적 있고, 바로 전 문자와 현재 문자가 다르다면 (=연속되지 않는다면)
그룹 단어가 아니므로 is_group을 0으로 바꾼다.
'PS' 카테고리의 다른 글
| [백준] 11729 하노이 탑 이동 순서 - C (0) | 2025.05.01 |
|---|---|
| [백준] 1003 피보나치 함수 - C (0) | 2025.05.01 |
| [백준] 25501 재귀의 귀재 - C (0) | 2025.05.01 |
| [백준] 2903 중앙 이동 알고리즘 - C (0) | 2025.04.14 |
| [백준] 2941 크로아티아 알파벳 - C (0) | 2025.04.12 |