조합을 구하는 문제이다.
순열과 달리, 사용했던 원소를 체크해주는게 관건이다.
# 조합
n, m = map(int, input().split())
data = list(map(int, input().split()))
data.sort()
result = []
checked = [False]*n
def dfs(idx, count):
if count == m:
print(*result)
return
for i in range(idx, len(data)):
if checked[i] == True: continue
checked[i] = True
result.append(data[i])
dfs(i, count+1)
result.pop()
checked[i] = False
dfs(0, 0)
'Problem Solving > 백준' 카테고리의 다른 글
[BOJ 백준] 9466번 : 텀 프로젝트 - 파이썬, Python (0) | 2021.01.06 |
---|---|
[BOJ 백준, 삼성 SW 역량 테스트 기출 문제] 14888번 : 연산자 끼워넣기 - Python (1) | 2021.01.04 |
[BOJ 백준] 15654번 : N과 M(5) - Python (0) | 2021.01.03 |
[BOJ 백준] 15652번 : N과 M(4) - Python (0) | 2021.01.03 |
[BOJ 백준] 15651번 : N과 M(3) - Python (0) | 2021.01.03 |