본문 바로가기

알고리즘/python

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

반응형

[문제 출처]

https://www.acmicpc.net/problem/2798

 

2798번: 블랙잭

첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장

www.acmicpc.net

 

[문제 풀이]

카드 3장의 합의 모든 경우를 계산하여 저장한 후 그중에 M보다 작거나 같은 가장 큰 수를 구하였다.

import sys
input = sys.stdin.readline

n, m = map(int, input().split())

cards = list(map(int, input().split()))

sums =[]

c = n*(n+1)//2

for i in range(n):
    for j in range(i+1, n):
        for k in range(j+1, n):
            sums.append(cards[i]+cards[j]+cards[k])

result = cards[0]
for el in sums:
    if el <= m and result < el:
        result = el

print(result)
반응형