문제 해설
- 완전탐색이라는걸 염두해두고 모든 answers를 탐색해야한다.
- 각각의 학생이 찍는 번호 주기를 배열로 표시해두고 answers의 값과 찍는 번호가 같은 경우에 dic에 +1 해준다.
- dic에서 max값을 가져오는데 가장 문제를 많이 맞힌 학생이 여러명일 경우에는 오름차순으로 정렬시켜주면 끝
func solution(_ answers:[Int]) -> [Int] {
let arr1 = [1,2,3,4,5]
let arr2 = [2,1,2,3,2,4,2,5]
let arr3 = [3,3,1,1,2,2,4,4,5,5]
var dic: [Int: Int] = [:]
for i in 0..<answers.count {
if answers[i] == arr1[i%arr1.count] { dic[1] = (dic[1] ?? 0) + 1 }
if answers[i] == arr2[i%arr2.count] { dic[2] = (dic[2] ?? 0) + 1 }
if answers[i] == arr3[i%arr3.count] { dic[3] = (dic[3] ?? 0) + 1 }
}
let max = dic.values.max()!
let result = dic.filter { $0.value == max }.keys.sorted()
return result
}