https://www.acmicpc.net/problem/15649
이 문제를 풀때 가장 주의해야할 점은 1 2랑 2 1이 각각 다른 경우라는 것이다.
즉, 매번 used배열 값을 초기화해야한다.
<전체풀이>
N, M = map(int, input().split())
arr = list(range(1, N+1))
used = [0]*N
path = [0]*M
def rcr(level):
if level == M:
print(*path)
return
for i in range(N):
if used[i] == 1:
continue
used[i] = 1
path[level]=arr[i]
rcr(level+1)
path[level] = 0
used[i] = 0
rcr(0)
'파이썬 알고리즘' 카테고리의 다른 글
[파이썬] SWEA 파스칼의 삼각형 (0) | 2022.12.07 |
---|---|
[파이썬] SW 문제해결 기본 5일차 - Magnetic (0) | 2022.12.07 |
[파이썬] 백준 11047 동전 0 (0) | 2022.12.06 |
[파이썬] 백준 1436 영화감독 숌 (부르트포스) (0) | 2022.11.30 |
[파이썬] SWEA SW 문제해결 응용 7일차 - 행렬찾기 (0) | 2022.11.14 |