15649번: N과 M (1)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
def dfs(depth, N, M):
if depth == M:
print(' '.join(map(str, out)))
return
# 전체를 탐색 1,2,3,4
for i in range(N):
# 아직 방문하지 않았다면
if not visited[i]:
visited[i] = True # 방문 처리
out.append(i+1) # 방문 기록
dfs(depth+1, N, M) # 깊이 우선 탐색
visited[i] = False # 방문 기록 제거
out.pop()
N,M = map(int, input().split())
visited = [False] * N
out = []
dfs(0,N,M)
'Algorithm' 카테고리의 다른 글
| 트리 자료구조 - 이진 탐색 트리 (0) | 2021.04.16 |
|---|---|
| 이진탐색(Binary Search) (0) | 2021.04.16 |
| BOJ - 18870번 - 좌표 압축 (0) | 2021.04.08 |
| BOJ - 11651번 - 좌표 정렬하기 2 (0) | 2021.04.08 |
| BOJ - 11650번 - 좌표 정렬하기 (0) | 2021.04.08 |