def dfs(cnt,goal,res): if cnt == goal: print(*res) return else: for i in range(N): if visited[i]: temp = res + [arr[i]] if tuple(temp) not in record: visited[i] = False record.add(tuple(temp)) dfs(cnt+1,goal,temp) visited[i] = True N,M = map(int,input().split()) visited = [True]*N record = set() arr = list(map(int,input().split())) arr.sort() dfs(0,M,[])
문제 자체는 어렵지 않은 문제이다. 조합을 이용해서 문제를 풀어주면 된다.
그리고 RECORD를 이용해서 중복되는 경우를 배제해줬다.
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ/백준] 3056 007 (0) | 2021.06.07 |
---|---|
[BOJ/백준] 16188 달빛 여우 (0) | 2021.06.07 |
[BOJ/백준] 14950 정복자 (0) | 2021.06.06 |
[BOJ/백준] 14725 개미굴 (0) | 2021.06.06 |
[BOJ/백준] 12852 1로 만들기 2 (0) | 2021.06.06 |