n,m = list(map(int,input().split()))
s = []
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()
dfs()
어렵지 않다. 조건에 맞는 배열을 탐색, 출력하는 것이므로 dfs로 탐색 출력을 진행.
n,m = list(map(int,input().split()))
s = []
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()
dfs(1)
15650은 겹치는 배열을 가지지 않게 하기위해(순서만 다른 배열) start를 뒤로 하나씩 밀어 탐색 범위를 하나씩 줄여준다.
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 4446 ROT12 (1) | 2021.07.17 |
---|---|
[백준][Python] 2529 부등호 (0) | 2021.07.16 |
[백준][Python] 13398 연속합 2 (0) | 2021.07.11 |
[백준][Python] 1717 : 집합의표현 (0) | 2021.07.10 |
[백준][Python] 10775: 공항 (0) | 2021.07.10 |