개미의 개열시미 프로그래밍

[알고리즘] 백준2798 블랙잭 - 파이썬 본문

알고리즘/그리디 & 구현

[알고리즘] 백준2798 블랙잭 - 파이썬

YunHyeok 2021. 7. 29. 18:12
728x90
반응형

백준 단계별 풀어보기 브루트 포스(완전 탐색) 파트에서 첫 번째 문제를 풀어보았습니다. 이코 테에서 풀었던 문제와 매우 유사해서 쉽게 풀 수 있었던 문제였습니다. 

 

https://www.acmicpc.net/problem/2798

 

2798번: 블랙잭

첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장

www.acmicpc.net

 

 

[풀이코드]

from sys import stdin

# 예제입력받기
n, m = map(int, stdin.readline().split())
list = list(map(int, stdin.readline().split()))
result = 0

for i in range(n):
    for j in range(i+1, n):
        for k in range(j+1, n):
            if list[i]+list[j]+list[k] > m: # m이 넘어가면 패스
                continue
            else:
                result = max(result, list[i]+list[j]+list[k])

print(result)

 

[문제풀이]

중간에 m이 넘어가면 continue로 패스하게끔 구현해주고 m이 이하인 합중에서 max인 것을 출력하면 쉽게 풀 수 있었던 문제였습니다.

728x90
반응형
Comments