https://programmers.co.kr/learn/courses/30/lessons/12946
#include <string>
#include <vector>
using namespace std;
vector<vector<int>> vvTemp;
void dfs(int n, int start, int bypass, int to)
{
vector<int> vTemp={start,to};
if(n==1)
{
vvTemp.emplace_back(vTemp);
}
else
{
dfs(n-1, start, to, bypass);
vvTemp.emplace_back(vTemp);
dfs(n-1, bypass, start, to);
}
}
vector<vector<int>> solution(int n) {
dfs(n,1,2,3);
return vvTemp;
}
이해하기 :
from bypass to 구조로
n-1개와 / 1개를 어디에 배치하냐에 따라
from bypass to 에서
1.from to bypass
2.bypass from to
1과 2로 분기되고,
1개를 움직이냐 아니면 몸체를 움직이냐에 따라
n=1 조건과 n-1조건으로 분기된다.