프로그래머스 최빈값 구하기(Python, Dictionary)

민갱·2023년 6월 13일

CT

목록 보기
8/35

실패.

딕셔너리 & set 차이가 있다는 것을 놓쳤다.
처음에는 set으로 딕셔너리, 리스트를 만들어서 카운트 함수를 사용하고 갯수를 세고 blabla~~~... 너무 돌아갔다..(실패)

def solution(array):
    arr = list(set(array))
    
    
    dict = {}
    for i in arr:         
        count = array.count(i)
        dict[i] = count
        
    answer = sorted(dict.values(), reverse=True)

    if len(answer) > 1 and answer[0] == answer[1]:
        return -1
    else:
        return next(iter(answer))

성공.

가볍게 처음부터 딕셔너리 선언 후 key & value 로 갯수를 늘리고 최빈값을 찾으면 되는것..

def solution(array):
    answer = 0
    
    dict_array = {}
    
    for i in array:
        if i in dict_array:
            dict_array[i] += 1
        else:
            dict_array[i] = 1
    
    max_idx = -1
    max_cnt = 0
    for i in dict_array:
        if dict_array[i] > max_cnt:
            max_cnt = dict_array[i]
            max_idx = i
        elif dict_array[i] == max_cnt:
            max_idx = -1
    
    answer = max_idx
    
    return answer

프로그래머스 최빈값 구하기

profile
가보자고

0개의 댓글