알고리즘/백준
[BOJ/백준] 15663 N과 M(9)
mmmlee
2021. 6. 6. 23:58
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를 이용해서 중복되는 경우를 배제해줬다.