1. 문제
15650번
2. 풀이
- 15649의 코드에서 아주 약간만 변형을 주면 풀 수 있다.
N,M = list(map(int,input().split()))
def nm_backtrack(n, m):
result = [0]
'''
max 메서드를 사용하기 위해 맨 앞에 0을 추가한다.
'''
def backtrack():
if len(result) == m+1:
'''
맨 앞에 0이 붙어 있으므로 입력받은 tree 최대 깊이보다 +1 만큼 증가 시킨다.
'''
print(' '.join(map(str,result[1:])))
return
for i in range(1,n+1):
if i > max(result):
result.append(i)
'''
tree 가지를 재귀 형태로한번 더 뻗는다.
위의 if문에 의해 Depth가 tree 끝에 왔다면
출력하고 return 된다.
'''
backtrack()
'''
return되어 나온 tree의 가지 끝을 자른다.
for 문에 의해 다음 i가 가지 끝에 나온다.
'''
result.pop()
backtrack()
nm_backtrack(N, M)