개인 공부/프로그래머스
[프로그래머스] Lv.1 모의고사 swift
임구마🍠
2024. 7. 29. 18:00
시험이 최대 10,000문제로 구성되어있다 라는 조건이 있어서
처음엔 반복문으로 수포자1, 2, 3 배열을 answers 배열 크기랑 동일하게 늘려서 풀었다가
생각해보니 늘리는 작업 없이 index로 접근해서 배열 개수로 나눈 나머지로 비교해도 되는거였음..!
나의 풀이
import Foundation
func solution(_ answers:[Int]) -> [Int] {
let a1 = [1, 2, 3, 4, 5]
let a2 = [2, 1, 2, 3, 2, 4, 2, 5]
let a3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
var dict = [1:0, 2:0, 3:0]
for (index, answer) in answers.enumerated() {
dict[1]! += a1[index % 5] == answer ? 1 : 0
dict[2]! += a2[index % 8] == answer ? 1 : 0
dict[3]! += a3[index % 10] == answer ? 1 : 0
}
return dict.filter { $0.value == dict.values.max()! }.map { $0.key }.sorted()
}