BOJ

백준 2798. 블랙잭 [Python]

Hoo_Dev 2022. 3. 29. 00:20
 

2798번: 블랙잭

첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장

www.acmicpc.net

def f(n, k, m):
    global black
    global ssum

    if n == k:
        if sum(black) == M or sum(black) > ssum and sum(black) <= M:
            ssum = sum(black)
            return ssum
    else:
        for i in range(m):
            if used[i] == 0:
                used[i] = 1
                black[n] = arr[i]
                dfs(n+1, k, m)
                used[i] = 0

N, M = map(int, input().split())
arr = list(map(int, input().split()))

ssum = 0
black = [0] * 3
used = [0] * N
f(0, 3, N)
print(ssum)

브루트포스로 각각 3개의 인수를 받아서 풀이. 결과를 저장할 때 M과 같거나, 작은 수 중에 가장 가까운 수를 출력

'BOJ' 카테고리의 다른 글

백준 1931. 회의실 배정 [Python]  (0) 2022.03.31
백준 2309. 일곱 난쟁이 [Python]  (0) 2022.03.29
백준 10870. 피보나치 수 5 [Python]  (0) 2022.03.29
백준 10872. 팩토리얼 [Python]  (0) 2022.03.29
백준 1260. DFS와 BFS [Python]  (0) 2022.03.27