- 문제 : N과 M (1)
- 난이도 : 실버 3
- 언어 : Python
- 문제 링크 : https://www.acmicpc.net/problem/15649
def recur(lev):
if lev == M:
print(*path)
return
for i in range(N):
if visited[i] == 0:
visited[i] = 1
path.append(i+1)
recur(lev+1)
path.pop()
visited[i] = 0
N, M = map(int, input().split())
path = []
visited = [0] * N
recur(0)
level = 2, branch = 4 인 재귀를 이용하여 풀이.
같은 숫자가 반복하여 등장하면 안되기 때문에 visited를 이용하여 방문표시를 해주고, 해당 결과값이 return 됐을 경우 다시 초기화 시켜줌
'BOJ' 카테고리의 다른 글
백준 15651. N과 M (3) [Python] (0) | 2022.06.03 |
---|---|
백준 15650. N과 M (2) [Python] (0) | 2022.06.03 |
백준 11724. 연결 요소의 개수 [Python] (0) | 2022.06.02 |
백준 1302. 베스트셀러 [Python] (0) | 2022.06.02 |
백준 1449. 수리공 항승 [Python] (0) | 2022.05.30 |