https://www.acmicpc.net/problem/15650
풀이
백트래킹 알고리즘에 대해 배울 수 있는 N과 M 시리즈의 2번째 문제입니다.
1번째 문제와 달라진 점은 start 인자를 넣어주어서 for문에서 현재 arr들어가있는 숫자보다 작은 숫자는 들어가지않게 해주는 코드입니다.
# 15650번 N과 M (2)
n, m = map(int, input().split())
arr = []
def dfs(start):
if len(arr) == m:
print(' '.join(map(str, arr)))
return
for i in range(start, n+1):
if i not in arr:
arr.append(i)
dfs(i+1)
arr.pop()
dfs(1)
출력결과
'백준 > DFS&BFS' 카테고리의 다른 글
[백준] 10026번 적록색약 - 파이썬 (0) | 2022.07.18 |
---|---|
[백준] 2178번 미로 탐색 - 파이썬 (0) | 2022.03.13 |
[백준] 15649번 N과 M (1) - 파이썬 (0) | 2022.03.03 |
[백준] 13913번 숨바꼭질 4 - 파이썬 (0) | 2022.02.18 |
[백준] 13549번 숨바꼭질 3 - 파이썬 (0) | 2022.02.11 |