Skip to content

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

Notes#