[백준 2798] 블랙잭 / 파이썬

권한·2025년 12월 24일

BOJ

목록 보기
11/40

주어진 N장의 카드 중 M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 구하는 문제이다.

  1. 뽑은 카드가 중복되지 않도록 3중 for문을 이용한다.
  2. res에는 최종합을 담고, total에는 뽑은 카드의 합을 저장한다. 조건에 부합하면 res에 total을 저장한다.
n, m = map(int, input().split())
cards = list(map(int, input().split()))

res = 0
for n1 in range(n):
    for n2 in range(n1 + 1, n):
        for n3 in range(n2 + 1, n):
            total = cards[n1] + cards[n2] + cards[n3]
            if res < total and total <= m:
                res = total
print(res)
        

브론즈2가 매겨져있길래 겁먹어서 미루다 미루다 마지막에 풀게됐는데 겁먹을 필요가 없던 문제였다...

profile
티스토리로 옮김

0개의 댓글