알고리즘/프로그래머스

[ 프로그래머스 / 파이썬 ] 최빈값 구하기

감싹이 2023. 1. 9. 21:18

🎉 문제

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

 

🎉 풀이

파이썬도 이렇게 푸는 게 맞나.. 싶긴 하다

자바로 풀던 버릇이 아직 남아서 인덱스를 이용해 최빈값 구하고 결과를 출력했다

 

 

🎉 코드

def solution(array):
    cnt = list(0 for i in range(0,max(array)+1)) #array의 가장 큰 수만큼 배열 크기 지정
    
    #빈도수 체크
    for i in array:
        cnt[i] += 1 
    
    #제일 많은 빈도수 구하기
    max_num = max(cnt)
    
    #기록된 최빈값의 인덱스 = 원래 값
    idx = -1
    #최빈값이 1개인지 체크
    num = 0
    for i in range(len(cnt)):
        if cnt[i] == max_num:
            idx = i
            num += 1
    
    #최빈값의 수에 따라 결과 출력
    if num == 1:
        answer = idx
    else: answer = -1
    
    return answer