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를 얻는 방식으로 해결하였지만, 제출 당시에는 하나의 테스트 케이스에서 시간 초과가 발생했었다. 현재는 지속적으로 제출하여도 문제 없어보인다.