Algorithm

2798번 블랙잭 / 브루트포스

김예나 2025. 1. 1. 14:41

n, m = map(int, input().split()) #카드의 개수 / 가장 가까워야 하는 수
cards = list(map(int, input().split())) #카드 리스트
result = 0

# 모든 조합의 수를 구함
for i in range(n):
    for j in range(i+1, n):
        for k in range(j+1, n):
            card_sum = cards[i] + cards[j] + cards[k]
            
            #조건에 해당되는 새로운 수가 나올 때마다 갱신
            if m >= card_sum and card_sum > result:
                result = card_sum

print(result)

 

  • 구할 수 있는 모든 조합의 수의 카드를 구함 -> for문을 통해서 구함
  • 모든 합을 다 저장해놨다가 최대를 찾아야 하나 생각함,, -> 조건에 맞는 변수를 하나 두고 새로운 값이 나올 때마다 갱신