๋ฌธ์
์ฝ๋
#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;
}
ํ์ด
๋ฐฑํธ๋ํน ๋ณด๋ค๋ ๋์ ์์ด์ธ์ง ์ข์ ์์ด์ธ์ง ํ๋ณํ๋ ๋ถ๋ถ์ ๊ตฌํํ๊ธฐ๊ฐ ๊น๋ค๋ก์ ๋ ๋ฌธ์ ์์ต๋๋ค.
ํด๋น ๋ถ๋ถ์ ์ ๋ธ๋ก๊ทธ์ ํ์ด ๋ฐฉ๋ฒ์ ์ฐธ๊ณ ํ์ต๋๋ค.
์ธ์ ํ ๋ ๊ฐ์ ๋ถ๋ถ ์์ด์ด ๊ฐ์์ง๋ฅผ ๊ฒ์ฌํ๋ฉด ๋ฉ๋๋ค. 32121 ์ด๋ผ๋ ์์ด์ด ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์ด๋ฅผ ๊ฒ์ฌํ๋ ๊ณผ์ ์ ์๋์ ๊ฐ์ต๋๋ค.
- 32121 -> 2์ 1์ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํต๊ณผ
- 32121 -> 21๊ณผ 21์ ๊ฐ๊ธฐ ๋๋ฌธ์ ์คํจ
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 6443๋ฒ - ์ ๋๊ทธ๋จ (0) | 2022.08.21 |
---|---|
[๋ฐฑ์ค,c++] 3980๋ฒ - ์ ๋ฐ ๋ช ๋จ (0) | 2022.08.21 |
[๋ฐฑ์ค,c++] 2580๋ฒ - ์ค๋์ฟ (0) | 2022.08.21 |
[๋ฐฑ์ค,c++] 18430๋ฒ - ๋ฌด๊ธฐ ๊ณตํ (0) | 2022.08.21 |
[๋ฐฑ์ค,c++] 1174๋ฒ - ์ค์ด๋๋ ์ (0) | 2022.08.21 |
[๋ฐฑ์ค,c++] 14712๋ฒ - ๋ด๋ชจ๋ด๋ชจ (Easy) (0) | 2022.08.20 |
๋๊ธ