해당 포스팅은 아래 링크와 제 풀이를 바탕으로 작성하였습니다.
[1, 2]와 [2, 1]을 다른것으로 처리한다.
public static void dfs(int depth, int start, int arr[]) {
if(depth == 2) {
list.add(arr.clone());
return;
}
for(int i = 0; i < N; i++) {
if(!visit[i]) {
visit[i] = true;
arr[depth] = i;
dfs(depth+1, i+1, arr);
visit[i] = false;
}
}
}
public static void dfs(int depth, int start, int arr[]) {
if(depth == 2) {
list.add(arr.clone());
return;
}
for(int i = start; i < N; i++) {
if(!visit[i]) {
visit[i] = true;
//arr[depth] = i;
arr[depth] = i;
dfs(depth+1, i+1, arr);
visit[i] = false;
}
}
}
for(int i = 0; i < N; i++) {
for(int i = start; i < N; i++) {