최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
import Foundation
func solution(_ array:[Int]) -> Int {
var tmp: [Int] = []
//array의 최대 수 만큼의 배열을 만든다
for _ in 0...array.max()!{
tmp.append(0)
}
//array에 담긴 수 인 tmp의 위치에 증가
//i가 20이면 tmp[20]이 1증가
for i in array{
tmp[i] += 1
}
//tmp의 최대수를 가져옴
let tmpmax = tmp.max()
var cnt = 0
var wheres = 0
//tmpmax를 찾아가며 최대빈도수가 나타날 때 마다 cnt증가, i를 wheres에 저장
for i in 0...tmp.count - 1{
if(tmpmax == tmp[i]){
cnt += 1
wheres = i
}
}
//wheres 자체가 index이기 떄문에 wheres출력
return cnt > 1 ? -1 : wheres
}