N, M = map(int, input().split())
cards = list(map(int, input().split()))
def blackjack(cards, M):
max_sum = 0
# 3중 for 구문을 사용하여 차례대로 3장을 가져옵니다.
for i in range(len(cards)):
for j in range(i + 1, len(cards)):
# i+1을 하여 첫번째 카드 이후를 뽑습니다.
for k in range(j + 1, len(cards)):
card_sum = cards[i] + cards[j] + cards[k]
# 뽑은 카드의 수를 더합니다.
if card_sum <= M and card_sum > max_sum:
#넘지 않으면서 가까운 값은 이하(<=)로 표현하였습니다.
max_sum = card_sum
# card_sum을 max_sum에 갱신함으로써,
# max_sum은 뽑은 것 중에 가장 큰 합을 유지할 수 있습니다.
if max_sum == M:
return max_sum
# 가장 큰합은 M이기 때문에 M에 도달했을때 값을 도출합니다.
return max_sum
result = blackjack(cards, M)
print(result)
'코딩 연습 > 백준 코드' 카테고리의 다른 글
접미사 배열-11656.py (0) | 2023.10.18 |
---|---|
빙고-2578.py (0) | 2023.10.18 |
세로읽기-10798.py (0) | 2023.10.18 |
수강신청-13414.py (0) | 2023.10.18 |
암호해독기-17176.py (0) | 2023.10.18 |