카테고리 없음

1316 그룹 단어 체커 (백준)

rectified 2025. 2. 26. 13:45

뭔 생각이 부족해서 못 풀었나

check 배열을 지정해서 알파벳을 체크해야 한다는거 까지는 알았는데 이전 캐릭터의 활용을 생각하지 못한것같다.

 

뭘 실수해서 틀렸나

실수는 아니고 아이디어가 문제였다.

 

그래서 뭘 기억하면 되나

prev = s[0] 기억하고 문제마다 방법 생각해서 활용하는 것을 길러야함.

 

#include <iostream>
#include <string>
#include <vector>
using namespace std;

bool groupcheck(string s){
    vector<bool> checked(26, false);
    char prev = s[0];
    checked[prev - 'a'] = true;

    for (int i = 1; i < s.size(); i++){
        if (checked[s[i] - 'a'] && s[i] != prev){
            return false;
        }
        prev = s[i];
        checked[s[i] - 'a'] = true;
    }

    return true;

}


int main(){
    cin.tie(0) -> sync_with_stdio(0);
    int N;
    cin >> N;

    int count = 0;
    for (int i = 0; i < N; ++i) {
        string word;
        cin >> word;
        if (groupcheck(word)) {
            count++;
        }
    }

    cout << count << '\n';

}