728x90
https://www.acmicpc.net/problem/15654
백트래킹이 조금 부족한거 같아서 푼 문제
# N & M (5)
import sys; input = sys.stdin.readline
def backtrack(ind, limit, size, nums, visit, lst=None):
if lst is None:
lst = []
if ind == limit:
print(*[nums[i] for i in lst])
return
for i in range(size):
if visit[i]: continue
visit[i] = True
lst.append(i)
backtrack(ind + 1, limit, size, nums, visit, lst)
lst.pop()
visit[i] = False
def main():
N, M = map(int, input().split())
nums = sorted(map(int, input().split()))
visit = [False for _ in range(N)]
backtrack(0, M, N, nums, visit)
if __name__ == '__main__':
main()
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 15663 N과 M(9) python (0) | 2022.01.27 |
---|---|
[백준] 15657 N과 M(8) python (0) | 2022.01.27 |
[백준] 3040 백설공주와 일곱 난쟁이 python (0) | 2022.01.27 |
[백준] 24230 트리 색칠하기 python (0) | 2022.01.26 |
[백준] 17073 나무 위의 빗물 python (0) | 2022.01.26 |