[백준/Python] 2798번 - 블랙잭

Sujin Lee·2022년 9월 27일
0

코딩테스트

목록 보기
118/172
post-thumbnail

문제

백준 2798번 - 블랙잭

해결 과정

  • 배열에서 중복없이 3개를 뽑는 combinations를 구현
  • 그 3개의 배열의 summ보다 작거나 같으면서 가장 가까운 maximum을 구한다.

시행착오

  • 조합 구현하는 방법 암기암기!!

풀이

import sys

n,m = map(int,sys.stdin.readline().split())
array = list(map(int,sys.stdin.readline().split()))

def combinations(array,n):
  result = []
  if n == 0:
    return [[]]
  for i in range(len(array)):
    elem = array[i]
    for rest in combinations(array[i+1:],n-1):
      result.append([elem] + rest)
  return result

maximum = 0
for i in combinations(array,3):
  if sum(i) <= m and sum(i) > maximum:
    maximum = sum(i)

print(maximum)
profile
공부한 내용을 기록하는 공간입니다. 📝

0개의 댓글