문제
https://www.acmicpc.net/problem/2798
블랙잭… 진짜로 그냥 블랙잭이다. 카드 장 수와 마지노선, 그리고 카드가 주어질 때 카드 세 장의 합이 마지노선을 넘지 않으면서 제일 큰 수를 구하는 문제다.
Reference
https://go-coding.tistory.com/67
https://duwjdtn11.tistory.com/297
풀이
일단 마지노선 얘기가 왜 나왔냐면… 블랙잭의 룰이 그렇다. 블랙잭은 카드의 합이 21이 넘으면 지는 게임이기 때문. 즉, 카드 세 장의 숫자를 합쳤을 때 마지노선으로 주어진 수보다 크면 진다. 예시 입력에서 5 21이 주어졌을 때 답은 21이지만 실제로 다 계산해보면 24까지 나온다. 근데 24는 21보다 크니까 져요…
import sys
card,maginot = map(int,sys.stdin.readline().split())
card_list = list(map(int,sys.stdin.readline().split()))
result = 0
for i in range(card):
for j in range(i+1,card):
for k in range(j+1,card):
if card_list[i]+card_list[j]+card_list[k] > maginot:
continue
else:
result = max(result,card_list[i]+card_list[j]+card_list[k])
#이거 3중for로 되는거 실화?
print(result)
이걸로 한방컷 실화…
'BOJ > [BOJ] Python' 카테고리의 다른 글
백준 7568번 풀이 (0) | 2022.08.19 |
---|---|
백준 2231번 풀이 (0) | 2022.08.19 |
백준 11729번 풀이 (0) | 2022.08.19 |
백준 2477번 풀이 (0) | 2022.08.19 |
백준 2447번 풀이 (0) | 2022.08.19 |