본문 바로가기
개발/문제풀이

프로그래머스 '최빈값 구하기' 파이썬 풀이

by beomcoder 2023. 2. 16.
728x90
반응형
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

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

# max_value를 사용해서 풀었다. 
# 0번째는 array 값, 1번째는 그 값의 개수, 2번째는 개수가 같은게 있는지 여부이다.
# set(array)를 통해 array 값들을 1개씩만 써서 for문을 돈다.
# v의 개수가 저장한 최대 개수보다 많다면 max_value값을 고쳐준다.
# v의 개수와 max_value의 개수가 같다면 1을 써준다.

def solution(array):
    max_value = [-1, -1, 0]
    
    for v in set(array):
        v_count = array.count(v)

        if  v_count > max_value[1]:
            max_value = [v, array.count(v), 0]
        elif v_count == max_value[1]: 
            max_value[-1] = 1
    
    return -1 if max_value[-1] else max_value[0]
728x90
반응형

댓글