문제풀이/백준(BOJ)
[알고리즘] 백준 2798번 : 블랙잭
딸기맛도나쓰
2020. 7. 17. 17:45
백준 2798번 : 블랙잭 (문제 링크)
- 사용 언어 : 파이썬(Python)
- 문제 유형 : 배열, 완전탐색
- 난이도 : 하
소스코드
import sys
n, m = map(int, sys.stdin.readline().split())
cards = list(map(int, sys.stdin.readline(). split()))
sum_cards = 0
for i in range(n-2):
for j in range(i+1, n-1):
for k in range(j+1, n):
temp = cards[i] + cards[j] + cards[k]
if temp <= m and sum_cards < temp:
sum_cards = temp
print(sum_cards)
설명
카드를 3장
골라야 하므로, 삼중반복문
을 사용하여 가능한 모든 조합을 탐색한다. 3장의 합이 m
을 넘지 않는 값들 중 최대값
이 답이 된다. temp
변수에 현재 조합의 합을 저장하고, 그 값이 m
을 넘지 않으면서 sum_cards
보다 크다면, sum_cards
는 temp
가 된다. 반복문이 종료되면 sum_cards
는 m
을 넘지 않는 값들 중 최대값
을 가지고 있게 된다.