Algorithm Problems
[백준] [Python] N과 M (3) - 백트래킹
WakaraNai
2021. 5. 6. 00:41
728x90
반응형
15651번: N과 M (3)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
Python
n, m = map(int, input().split())
arr = [0]*(n+1)
#visit = [0]*(n+1)
result = []
def backtracking(k):
if (k == m):
result.append(arr[:m])
return
for i in range(1, n+1):
#if visit[i] == 0:
arr[k] = i
# visit[i] = 1
# print(visit, arr)
backtracking(k+1)
# visit[i] = 0
# print(visit, arr)
backtracking(0)
for x in result:
for i in range(m):
print(x[i], end=" ")
print()
짧은 풀이
- 중복을 허용하므로 visit 리스트가 필요 없다
728x90
반응형