Problem Solving/브루트포스
[백준-python] 2798번: 블랙잭
Dev_en
2022. 1. 23. 23:41
- 분류 - 브루트포스
- 난이도 - 브론즈2
관련 개념
집합 특징
- 인덱스로 접근할 수 없다.
- sum은 가능하다.
주의사항
문제를 잘 읽자. 세 카드의 합이 M을 넘기면 안된다.
(질문 게시판 읽어보니 이것 때문에 틀린 분들이 한 둘이 아닌 듯..)
답안 코드
from itertools import combinations
# 입력
n, m = map(int,input().split())
cards = list(map(int,input().split()))
diff=300000 # (m-세 카드의 합): 최댓값으로 초기화
r_combi = [] # 정답이 되는 세 카드의 조합을 저장할 리스트
# 세 카드의 조합 중 합이 m을 넘지 않는 선에서 (m-세 카드의 합)이 최소가 되는 조합을 구함
for combi in combinations(cards,3):
if sum(combi)<= and diff>=m-sum(combi):
diff=m-sum(combi)
r_combi=list(combi)
print(sum(r_combi))