[백준 2798번 - Python 파이썬] 블랙잭

wonyoung Song·2021년 11월 18일
0

알고리즘

목록 보기
2/7

백준 2798 - 블랙잭

Solution

조건 : 'N장의 카드에 써져 있는 숫자가 주어졌을 때, M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 구해 출력하시오'

모든 경우의 수를 다 찾아보는 brute force 방식을 쓰기로 결정

3개의 카드를 선택해야 하기 때문에 3중 for문을 이용하였으며,
max 함수를 이용해서 최대값을 찾는 형태로 구성하였다.

Code

N, M = map(int,input().split())
arr = list(map(int,input().split()))

result = 0

for i in range(N):
  for j in range(i + 1, N):
    for k in range(j + 1, N):
      tmp = arr[i] + arr[j] + arr[k]
      if tmp <= M:
        result = max(result, tmp)

print(result)

Feedback
알고리즘 중에서는 비교적 쉬운 난이도였기에 푸는데 그렇게 어렵지는 않았던 문제

profile
네. 송원영입니다.

0개의 댓글