페이지

1316번: 그룹 단어 체커

https://www.acmicpc.net/problem/1316


$O(nl)$

쓰였던 문자의 위치를 저장하고 문자가 이미 쓰인적이 있다면 그 때의 위치와 연속되어 있는지 확인하자.


#include<stdio.h>
#include<string.h>
int n, p[200], res;
char str[101];
int main() {
    scanf("%d", &n);
    res = n;
    for (int i = 0; i < n; i++) {
        memset(p, -1, sizeof(p));
        scanf("%s", str);
        for (int j = 0; str[j]; j++)
            if (p[str[j]] == -1 || p[str[j]] == j - 1) p[str[j]] = j;
            else { res--; break; }
    }
    printf("%d", res);
    return 0;
}

댓글 없음 :

댓글 쓰기