Bakejoon/Bronze

[Python] 백준 2798번 : 블랙잭 <Bronze 2>

chattymin 2022. 5. 7. 16:54
728x90
반응형

⚠️ 내맘대로 작성한 코드이기 때문에 비합리적 진행과 근거없는 추론이 있을 수 있습니다!⚠️

 

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

 

2798번: 블랙잭

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

www.acmicpc.net

Code


import sys
input = sys.stdin.readline

num, target = map(int, input().split())
arr = list(map(int, input().split()))
i, j, k, sum, result = 0,0,0,0,0

for i in range(num-2):
    fir = arr[i]
    for j in range(i,num-2):
        sec = arr[j + 1]
        for k in range(j,num - 2):
            thr = arr[k + 2]
            sum = fir + sec + thr
            if ((sum > result) and (sum <= target)):
                result = sum

print(result)

Code 필수 요소

1. 완전탐색(브루트포스 알고리즘)

2. 조건 설정

 

이것만 생각해내면 절반은 끝났다.

 

// 완전탐색

말 그대로 전부다 탐색하는 방법이다. 그래서 for문을 삼중으로 중첩하여 하나하나 모두 탐색하도록 했다

 

// 조건설정

target에 가장 가까운 값을 구하기 위해서 이전에 가장 가까운값과 비교하여 크기가 더 크고, target보다 작으면 기록시켰다.

 

이건... 딱히 코멘트 할게 없다. 완전탐색이란 이런거다? 알아보는 문제.

 

 

-꿑-

728x90
반응형