DFS로 풀었다. 풀때 visited 배열을 생성하였다. 그래서 중복으로 숫자가 들어가지 않게 설계하였다.
private static void dfs(int depth, String s) {
if (depth == n) {
answer.add(s);
return;
}
for (int i = 1;i <= n;i++) {
if(!visited[i]) {
visited[i] = true;
dfs(depth + 1, s + i + " ");
visited[i] = false;
}
}
}
가능한 공간복잡도가 늘지않는 쪽으로 설계하고 싶어서 visited를 없에고 리턴하고 싶긴한데.. 그래도 또 이런 코드가 직관적이라