https://www.acmicpc.net/problem/15652
15652번: N과 M (4)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
n, m = map(int,input().split())
num = []
def dfs(temp,n,m,current):
if temp == m:
print(*num)
return
for i in range(current,n):
num.append(i+1)
dfs(temp+1,n,m,i)
num.pop()
dfs(0,n,m,0)
import sys
n, m = map(int,sys.stdin.readline().split())
num = [i for i in range(1,n+1)]
answer = []
def dfs(start, depth):
if depth == m :
for i in range(m):
print(answer[i], end = " ")
print()
return
for i in range(start,n):
answer.append(num[i])
dfs(i,depth+1)
answer.pop()
dfs(0,0)
반응형
'알고리즘 공부 > 백트래킹' 카테고리의 다른 글
[백준] 9663번 N-Queen - 파이썬 (0) | 2021.05.28 |
---|---|
[백준] 14889번 스타트와 링크 - 파이썬 (0) | 2021.05.26 |
[백준] 15651번 N과 M (3) - 파이썬 (0) | 2021.05.26 |
백트래킹(backtracking) , 퇴각 검색 (0) | 2021.05.23 |
[백준] 15649번 N과 M (1) - 파이썬 (0) | 2021.05.22 |