백준 BaekJoon Online Judge // 2798
2021. 1. 26. 15:11ㆍProgramming/BOJ
백준 알고리즘 BaekJoon Online Judge 2798번 "블랙잭" 문제입니다.
import sys
from itertools import combinations
N, M = map(int, input().split())
lst = list(map(int, sys.stdin.readline().split()))
items = list(combinations(lst, 3))
temp = []
for item in items:
if sum(item) <= M:
temp.append(sum(item))
temp.sort(reverse=True)
print(temp[0])
M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 출력하는 문제다.
itertools의 combinations클래스를 사용했다. combinations를 사용해서 카드 조합 리스트를 생성하고 이 카드들의 숫자의 합을 M보다 크지 않은지 확인한 후 맞을 경우 새 리스트에 넣는다.
그 후 내림차순으로 정렬을 해서 맨 앞의 값을 출력하면 원하는 답을 얻을 수 있다.
'Programming > BOJ' 카테고리의 다른 글
백준 BaekJoon Online Judge // 7568 (0) | 2021.01.27 |
---|---|
백준 BaekJoon Online Judge // 2231 (0) | 2021.01.26 |
백준 BaekJoon Online Judge // 11729 (0) | 2021.01.25 |
백준 BaekJoon Online Judge // 10870 (0) | 2021.01.25 |
백준 BaekJoon Online Judge // 10872 (0) | 2021.01.23 |