728x90
https://www.acmicpc.net/problem/15664
백트래킹이 너무 부족해서 쉬운문제부터 다시 시작...
def backtrack(ind, limit, prev):
global nums, answer, visit
if ind == limit:
tmp = tuple([nums[i] for i, v in enumerate(visit) if v])
if tmp not in answer:
print(*tmp)
answer.add(tmp)
return
for i in range(prev + 1, len(nums)):
if visit[i]: continue
visit[i] = 1
backtrack(ind+1, limit, i)
visit[i] = 0
def main():
global nums, answer, visit
N, M = map(int, input().split())
nums = sorted(map(int, input().split()))
answer = set()
visit = [0 for _ in range(N)]
backtrack(0, M, -1)
if __name__=="__main__":
main()
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 11000 강의실 배정 python (0) | 2022.02.27 |
---|---|
[백준] 14502 연구소 python (0) | 2022.02.26 |
[백준] 21939 문제 추천 시스템 Version 1 python (0) | 2022.02.23 |
[백준] 1197 최소 스패닝 트리 python (0) | 2022.02.22 |
[백준] 11655 ROT13 C,C++ (0) | 2022.02.21 |