[Swift]模擬試験-プログラマーLv 1


SWIFTを用いてプログラマーの模擬試験問題を解決し,得られた知識をまとめる.
質問に移動

に答える

import Foundation

func solution(_ answers:[Int]) -> [Int] {
    
    let givenUps = [
        [1, 2, 3, 4, 5],
        [2, 1, 2, 3, 2, 4, 2, 5],
        [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    ]

    var scores:[Int: Int] = [1: 0, 2: 0, 3: 0]
    
    for (i, givenUp) in givenUps.enumerated() {
        for (j, answer) in answers.enumerated() {
            if answer == givenUp[j % givenUp.count] {
                scores[i + 1]! += 1
            }
        }
    }
    
    return scores.filter { $0.value == scores.values.max() }.keys.sorted()
}

考察する


問題はenumerated()を使用してindexとvalueを取得することによって解決されたが、コミット時にテストケースでタイムアウトが発生した.今から提出を続けても問題ありません.

使用する概念

  • Dictionary - keys and values
  • enumerated() - Apple Developer