wau2380's playground

추석맞이 코딩챌린지3 - 블랙잭 본문

카테고리 없음

추석맞이 코딩챌린지3 - 블랙잭

wau2380 2021. 9. 20. 21:50

세 번째 문제는

"블랙잭"입니다~!

블랙잭에 대해 알고 계신가요?

블랙잭은 카지노에서

자주 플레이 되는 게임이라고 해요.

난이도 별 세개... 도전해보러 갑시다!

문제

카지노에서 자주 플레이되는 블랙잭의 규칙은 카드의 합이 21이 넘지 않는 한도 내에서, 카드의 합을 가장 크게 만드는 게임이다.

이와 유사하게, 코드메이트 버전의 블랙잭은 N개의 카드중 세장의 카드를 뽑아 X를 넘지 않으면서 X와 가장 가까운 수의 카드조합을 골라내는 규칙으로 진행된다.

첫째 줄에는 카드의 개수 N과 목표 값 X가 주어지며,

두번째 줄에는 카드에 쓰여있는 수가 입력으로 주어질 때,

X에 가장 가까우면서 X를 넘지 않는 카드 세장의 합을 구해서 출력하세요.

​정답

아마 시간초과 떠서 백준에서는 틀리는 알고리즘입니다.. 함수를 너무 남발했네요!

itortools를 사용했어요.

import itertools
N,X = map(int, input().split())
Card = list(map(int, input().split()))
result = list((itertools.combinations((Card),3)))
sum_list = []
for i in range(len(result)):
  sum_list.append(sum(result[i]))
for i in range(len(sum_list)):
  a = max(sum_list)
  if a >= X:
    b = sum_list.index(max(sum_list))
    sum_list[b] = 0
  else:
    print(a)
    break