링크
백준 2798 블랙잭
백트래킹을 연습하기 위해 백트래킹으로 구현했다.
가지치기가 제대로 되지 않아 아직 완벽하다고는 할 수 없다.
갈길이 멀다. 조바심 내지 말고 차근차근 시작해보자
def blackjack(idx, j):
if idx == 3:
if sum(sel) <= M:
maxi.append(sum(sel))
else:
for i in range(j, N):
if visit[i] == 0:
visit[i] = 1
sel[idx] = cards[i]
blackjack(idx + 1, i + 1)
visit[i] = 0
N, M = map(int, input().split())
cards = list(map(int, input().split()))
visit = [0] * N
sel = [0] * 3
maxi = []
blackjack(0, 0)
print(max(maxi))