[BOJ][Python][브2][2798] 블랙잭
문제 링크
첫 번째 풀이
정답코드
백트래킹으로 접근합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import sys
from math import pi, sqrt
from collections import deque
# sys.stdin = open("input.txt", 'r')
n, m = map(int, input().split(' '))
arr = list(map(int, input().split(' ')))
ans = 0
def recur(depth, start, sum):
global ans
if sum > m:
return
if depth == 3:
ans = max(ans, sum)
return
for k in range(start, n):
recur(depth + 1, k + 1, sum + arr[k])
recur(0, 0, 0)
print(ans)
두 번째 풀이
정답코드
3개를 고르기 때문에 3중 for문으로 접근합니다. n이 100으로 작기 때문에 가능한 방법입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import sys
from math import pi, sqrt
from collections import deque
# sys.stdin = open("input.txt", 'r')
n, m = map(int, input().split(' '))
arr = list(map(int, input().split(' ')))
ans = 0
for i in range(n - 2):
for j in range(i + 1, n - 1):
for k in range(j + 1, n):
sum = arr[i] + arr[j] + arr[k]
if sum <= m:
ans = max(ans, sum)
print(ans)
Success Notice: 수고하셨습니다.
Leave a comment