2798번 블랙잭
풀이 방법
- 반복문을 돌면서 세 수의 합이 주어진 제한을 넘지 않으면서 가장 큰 수를 찾는다
풀이
Python
n, m = map(int, input().split(" "))
cards = list(map(int, input().split(" ")))
sum_cards = 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] > sum_cards:
if cards[i] + cards[j] + cards[k] <= m:
sum_cards = cards[i] + cards[j] + cards[k]
print(sum_cards)
Swift
import Foundation
let inputLine = readLine()!.components(separatedBy: " ").map { Int($0)! }
let cardNums = readLine()!.components(separatedBy: " ").map { Int($0)! }
let lenOfCardNums = inputLine[0]
let limitNumber = inputLine[1]
var count = 0
for i in 0...lenOfCardNums-3 {
for j in i+1...lenOfCardNums-2 {
for k in j+1...lenOfCardNums-1 {
let sumOfCards = cardNums[i]+cardNums[j]+cardNums[k]
if sumOfCards <= limitNumber {
count = max(count, sumOfCards)
}
}
}
}
print(count)