백트래킹과 재귀를 연습해보려고 푼 문제다. 역시나 아직 조금 어렵다...
import sys
def dfs():
if len(s) == M:
print(' '.join(map(str, s)))
return
for i in range(1, N+1):
if i not in s:
s.append(i)
dfs()
s.pop()
s = []
N, M = map(int, sys.stdin.readline().split())
dfs()
한번 푸니까 그래도 감이 생겼다. 계속 continue...
import sys
def dfs(start):
if len(s) == M:
print(' '.join(map(str, s)))
return
for i in range(start, N+1):
if i not in s:
s.append(i)
dfs(i+1)
s.pop()
s = []
N, M = map(int, sys.stdin.readline().split())
dfs(1)
import sys
def dfs():
if len(s) == M:
print(' '.join(map(str, s)))
return
for i in range(1, N+1):
s.append(i)
dfs()
s.pop()
s = []
N, M = map(int, sys.stdin.readline().split())
dfs()
import sys
def dfs(start):
if len(s) == M:
print(' '.join(map(str, s)))
return
for i in range(start, N+1):
if i not in s or i == start:
s.append(i)
dfs(i)
s.pop()
s = []
N, M = map(int, sys.stdin.readline().split())
dfs(1)