본문 바로가기
2022 하반기/Python

백준 2798 python

by concho 2023. 1. 26.

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

 

2798번: 블랙잭

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

www.acmicpc.net

""" 
2798
"""

N, M = map( int, input().split() )
lst = list( map( int, input().split() ) )

a = max(lst)
aidx = lst.index(a)
lst[aidx] = 0

b = max(lst)
bidx = lst.index(b)
lst[bidx] = 0

c = max(lst)

lst[bidx] = b
lst[aidx] = a

result = 0

if a+b+c <= M :
    print(a + b + c)
else :
    for i in range(N):
        for j in range(i+1, N):
            for k in range(j+1, N):
                if lst[i] + lst[j] + lst[k] > M:
                    continue
                else:
                    result = max(result, lst[i] + lst[j] + lst[k])
    print(result)

아직 파이썬에 미숙해서 탐색 범위를 좁히지 못함

나중에 다시 풀어볼 에정

'2022 하반기 > Python' 카테고리의 다른 글

백준 1436 Python  (0) 2023.02.07
백준 1018 python  (0) 2023.02.02
백준 7568 python  (2) 2023.02.02
백준 2231 python  (0) 2023.01.29
백준 python  (0) 2023.01.26

댓글