[알고리즘] 완전탐색, 브루트 포스 백준 2798번 - 블랙잭

minidoo·2020년 9월 19일
0

알고리즘

목록 보기
13/85
post-thumbnail
N, M = map(int, input().split())
card = list(map(int, input().split()))

answer = 0

for i in range(0, N):
    for j in range(i+1, N):
        for k in range(j+1, N):
            if card[i] + card[j] + card[k] <= M and card[i] + card[j] + card[k] > answer:
                answer = card[i] + card[j] + card[k]

print(answer)

풀이과정

  1. card에 [ 1, 2, 3, 4, 5 ] 가 들어있다고 가정해보자.
  2. 3개의 숫자를 선택하는 방법은 첫 번째 인덱스부터 고정하여, (1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 4) ... (3, 4, 5)가 있다.
  3. 이를 코드로 구현한 후 M보다 작은 가장 큰 합을 구한다.

0개의 댓글