2798. 블랙잭
TLDR#
2309. 일곱 난쟁이와 같은 완전탐색 itertools.combinations 사용하는 문제풀이
Snippet#
"""
http://boj.kr/2798
"""
from collections.abc import Sequence
from itertools import combinations
from sys import stdin
input = stdin.readline
def main(cards: Sequence[int], m: int) -> int:
"""
m을 넘지 않으면서 m에 최대한 가까운 카드 3장의 합을 구하시오
"""
return max(sum(tup) for tup in combinations(cards, 3) if sum(tup) <= m)
if __name__ == "__main__":
n, m = map(int, input().strip().split())
cards = map(int, input().strip().split())
print(main(cards, m))
Sample Input & Expected Output#
Input#
5 21
5 6 7 8 9
Expected Output#
21
Input#
10 500
93 181 245 214 315 36 185 138 216 295
Expected Output#
497