본문 바로가기
CS/알고리즘

[카테부] 코테스터디 2주차 - N과 M(6) (백준 15655)

by alphaca202 2024. 8. 13.

조합 문제 N개 중에 M개 뽑기!

순서 X, 중복 X

n, m = map(int, input().split())
arr = list(map(int, input().split()))
arr.sort()

ans = []
def print_ans():
    for i in range(n):
        if ans[i] == 1:
            print(arr[i], end=" ")
    print()

def choose(curr, cnt):
    if cnt >= n:
        if curr == m:
            # print("cnt : {}, curr: {}".format(cnt, curr))
            print_ans()
        return

    ans.append(1)
    choose(curr+1, cnt+1)
    ans.pop()

    ans.append(0)
    choose(curr, cnt+1)
    ans.pop()

choose(0, 0)

 

 

https://alphaca202.tistory.com/11

 

[알고리즘] 백트래킹 - 경우의 수 문제

원하는 조합과 순열 만드는 방법1. for문으로 구현하는 방법과2. 재귀함수로 구현하는 방법!  원하는 숫자의 조합이나 순열을 만들고, 객체를 선택하는 방법이다! 경우의수 문제는 중복순열순

alphaca202.tistory.com