개발일지/알고리즘

백준 2661번 : 좋은수열

김진우 개발일지 2025. 2. 2. 18:38
#include <iostream>
#include <vector>
#include <string>
using namespace std;

bool isGoodSequence(const string& seq) {
    int len = seq.length();
    for (int i = 1; i <= len / 2; i++) {
        if (seq.substr(len - i) == seq.substr(len - 2 * i, i)) {
            return false;
        }
    }
    return true;
}

bool findGoodSequence(int N, string& seq) {
    if (seq.length() == N) {
        cout << seq << endl;
        return true;
    }

    for (char num = '1'; num <= '3'; num++) {
        seq.push_back(num);
        if (isGoodSequence(seq)) {
            if (findGoodSequence(N, seq)) {
                return true;
            }
        }
        seq.pop_back();
    }
    return false;
}

int main() {
    int N;
    cin >> N;

    string seq;
    findGoodSequence(N, seq);

    return 0;
}

'개발일지 > 알고리즘' 카테고리의 다른 글

백준 2485번 : 가로수  (1) 2025.02.02
백준 2580번 : 스도쿠  (1) 2025.02.02
백준 15686번 : 치킨 배달  (0) 2025.02.02
백준 14889번 : 스타트와 링크  (0) 2025.02.02
백준 1929번 : 소수 구하기  (1) 2025.02.02