# 문제
백준15650 N과M (2) 파이썬 풀이
# 코드
import sys
from itertools import combinations
N,M = map(int,sys.stdin.readline().split())
# 조합의 문제이다.
for combi in combinations(range(1,N+1), M) :
print(*combi)
# 백트래킹으로 풀기
def dfs(arr,index) :
if len(arr) == M :
print(*arr)
return
for i in range(index,N+1) :
arr.append(i)
dfs(arr, i+1 )
arr.pop()
dfs([],1)
# 풀이
- 조합을 푸는 방법이다.
- for문의 시작 index를 통해서 뽑을 범위를 한정시켜버린다.
'•알고리즘(Algorithm ) > 문제풀이' 카테고리의 다른 글
[백준7662&파이썬] 이중 우선순위 큐를 만들고 관리하기(중복값 처리에 대해 항상 생각하자) (0) | 2023.05.02 |
---|---|
[백준15651&파이썬] 중복순열을 구하는 두가지 방법 (1) | 2023.05.01 |
[백준15649&파이썬] 파이썬에서 순열을 구해야 할때 (0) | 2023.04.30 |
[백준15686&파이썬] 조합을 이용해 브루트포스(완전탐색)해결하기 (0) | 2023.04.29 |
[백준2294&파이썬] DP를 이용하여 동전교환문제를 해결하기, DP는 값을 재활용한다. (0) | 2023.04.28 |