Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

mo1lusca의 블로그

[백준] 1316 그룹 단어 체커 - C 본문

PS

[백준] 1316 그룹 단어 체커 - C

mo1lusca 2025. 4. 14. 01:45

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으로 바꾼다.