[BOJ / Python] 2798 블랙잭

도니·2023년 4월 13일
0

BOJ / Python

목록 보기
76/104
post-thumbnail

문제

백준 2798 블랙잭

코드

#BOJ 2798 블랙잭

n, m = map(int, input().split())
cards = list(map(int, input().split()))

max_sum = 0
for i in range(n):
    for j in range(i+1, n):
        for k in range(j+1, n):
            if cards[i] + cards[j] + cards[k] <= m:
                max_sum = max(max_sum, cards[i] + cards[j] + cards[k])
            else:
                continue

print(max_sum)

코드 설명
해당 문제는 브루트 포스(Bruteforce)문제로 가능한 모든 경우의 수를 구해보고 그 중 최선의 값을 답으로 출력해야한다.

따라서 세 번의 for문을 통해 가능한 모든 카드 조합을 고려해보아야 한다.
첫 번째 for문은 첫 번째로 고른 카드, 두 번째 for문은 두 번째로 고른 카드, 세 번째 for문은 마지막으로 고른 카드를 의미한다. 만약 고른 세 장의 카드의 합이 M보다 작다면 기존의max_sum과 세 카드에 적힌 수의 합 중 큰 수를 max_sum의 값으로 갱신한다. 만약 고른 세장의 카드의 합이M보다 크다면 넘어간다.

profile
안녕하세요, 🌱새싹개발자 도니💡입니다!

0개의 댓글

관련 채용 정보