[白駿Python SWIFT]2798番ブラックジャック


2798ブラックジャック

  • 問題のショートカット
  • 解答方法

  • の繰り返し文を迂回して、3つの数の和は与えられた制限を超えず、最大の数
  • を探します.

    に答える


    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)