dfs를 통해
모든 노드가 1에서 n까지의 하위 노드를 깊이 우선 탐색하도록 하여
사전순으로 출력 되도록 하였음.
반복문 중첩을 통하여 해결하려고 했으나 잘 되지 않아서 블로그를 참조하였음
(https://wlstyql.tistory.com/56)
이런 문제가 나오면 완전 탐색중 DFS 알고리즘을 사용하는 것이 좋다는 것을 알게 되었고
다음에 DFS문제에 접근을 더 잘 할 수 있을것 같음.
기본적인 알고리즘을 빠르게 구현하지 못한게 아직 많이 부족하다는 생각이 든다.
n, m = map(int, input().split())
visited = [False] * n # 탐사 노드
result = [] # 출력
def solve(depth, n, m):
if depth == m:
print(' '.join(map(str, result))) #결과를 띄어쓰기 하여 출력
return
for i in range(len(visited)):
if visited[i] == False:
visited[i] = True
result.append(i + 1)
solve(depth + 1, n, m) #dfs
visited[i] = False
result.pop()
solve(0, n, m)