๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 2661๋ฒˆ - ์ข‹์€์ˆ˜์—ด

by ์•ˆ์ฃผํ˜• 2022. 8. 21.

๋ฌธ์ œ

 

2661๋ฒˆ: ์ข‹์€์ˆ˜์—ด

์ฒซ ๋ฒˆ์งธ ์ค„์— 1, 2, 3์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ๊ธธ์ด๊ฐ€ N์ธ ์ข‹์€ ์ˆ˜์—ด๋“ค ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜์—ด๋งŒ ์ถœ๋ ฅํ•œ๋‹ค. ์ˆ˜์—ด์„ ์ด๋ฃจ๋Š” 1, 2, 3๋“ค ์‚ฌ์ด์—๋Š” ๋นˆ์นธ์„ ๋‘์ง€ ์•Š๋Š”๋‹ค.

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
#include <algorithm>
#include <vector>


using namespace std;


int N;
string ans;
bool flag = false;
bool isvalid(string num){
    int end = num.length()-1;
    for(int i=1; i<num.length(); i++){
        if(end-i<0) return true;
        string num1 = num.substr(end, i);
        string num2 = num.substr(end-i, i);
        if(num1 == num2) return false;
        end--;
    }
    
    return true;
}

void backtracking(int idx, string temp){
    if(!isvalid(temp) || flag) return;
    
    if(idx == N){
        ans = temp;
        flag = true;
        return;
    }
  
    backtracking(idx+1, temp+"1");
    backtracking(idx+1, temp+"2");
    backtracking(idx+1, temp+"3");
    
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    cin>>N;
    
    backtracking(0, "");
    cout<<ans;
    
}

 

ํ’€์ด

๋ฐฑํŠธ๋ž™ํ‚น ๋ณด๋‹ค๋Š” ๋‚˜์œ ์ˆ˜์—ด์ธ์ง€ ์ข‹์€ ์ˆ˜์—ด์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ๋ถ€๋ถ„์„ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๊นŒ๋‹ค๋กœ์› ๋˜ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

 

[๋ฐฑ์ค€/C++] 2661๋ฒˆ: ์ข‹์€์ˆ˜์—ด (DFS, ๋ฐฑํŠธ๋ž™ํ‚น)

DFS๋กœ ์™„์ „ํƒ์ƒ‰์„ ํ•˜๋˜ ์œ ๋งํ•˜์ง€ ์•Š์œผ๋ฉด ํƒ์ƒ‰์„ ํฌ๊ธฐํ•˜๋Š” ๊ธฐ๋ฒ•์„ ๋ฐฑํŠธ๋ž™ํ‚น์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด ๋ฌธ์ œ๋„ ์—ญ์‹œ ๋ฐฑํŠธ๋ž™ํ‚น์œผ๋กœ ํ‘ธ๋Š” ๋ฌธ์ œ์ด๋‹ค! 1) ์ถœ๋ ฅํ•  ์ˆซ์ž๋ฅผ ์–ด๋””์— ๋‹ด์„ ๊ฒƒ์ธ๊ฐ€? -> string์— ๊ณ„์† ๋”ํ•ด

sanghyu.tistory.com

ํ•ด๋‹น ๋ถ€๋ถ„์€ ์œ„ ๋ธ”๋กœ๊ทธ์˜ ํ’€์ด ๋ฐฉ๋ฒ•์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ธ์ ‘ํ•œ ๋‘ ๊ฐœ์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ๊ฐ™์€์ง€๋ฅผ ๊ฒ€์‚ฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 32121 ์ด๋ผ๋Š” ์ˆ˜์—ด์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ด๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • 32121  -> 2์™€ 1์€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํ†ต๊ณผ
  • 32121 -> 21๊ณผ 21์€ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจ

๋Œ“๊ธ€