본문 바로가기
코딩테스트/programmers

[코딩테스트/programmers] Lv.0 최빈값 구하기

by 기록하는_사람 2022. 10. 15.

문제

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

 

입출력

array result
[1, 2, 3, 3, 3, 4] 3
[1, 1, 2, 2] -1
[1] 1

 

def solution(array):
    answer = 0
    
    d = {}
    for i in set(array):  # 중복 제외.
        d[i] = array.count(i)  # 딕셔너리에 { 값, 반복 횟수 } 저장.
    
    max_num = max(d.values())  # 가장 많이 반복된 횟수 구함. 
    
    cnt = 0
    for k, v in d.items():
        if v == max_num:
            answer = k  # 가장 많이 반복된 값 저장. 
            cnt += 1
    
    if cnt > 1:  # 값이 여러 개면 -1 저장. 
        answer = -1
    
    return answer

댓글