최빈값 return
from collections import Counter
def solution(array):
c = Counter(array)
order = c.most_common()
maximum = order[0][1]
modes = []
for num in order:
if num[1] == maximum:
modes.append(num[0])
if len(modes)>=2:
return -1
else:
return modes[0]
object Solution {
def sol(array: List[Int]): Int = {
def counterlist(array: List[Int], idx: Int, count: Int = 1): List[Int] = {
if (idx == array.length - 1) count :: Nil
else {
if (array(idx) == array(idx + 1)) counterlist(array, idx + 1, count + 1)
else count :: counterlist(array, idx + 1, 1)
}
}
def counter(idx: Int, value_idx: Int, count: Int = 1, max: Int = 1): Int = {
if (idx == array.length - 1) {
if (count > max) array(idx)
else array(value_idx)
}
else {
if (array(idx) == array(idx + 1)) counter(idx + 1, value_idx, count + 1,max)
else {
if (count > max) counter(idx + 1, idx, 1, count)
else counter(idx + 1, value_idx, 1, max)
}
}
}
if (array.length==1) array(0)
else {
val lst = counterlist(array, 0).sorted
val len: Int = lst.length
if (lst(len - 1) == lst(len - 2)) -1
else counter(0, 0)
}
}
def solution(array: Vector[Int]): Int = {
val thislst = array.toList
sol(thislst.sorted)
}
}