티스토리 뷰

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

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';

}

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
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
글 보관함