05의 개발 계발

[알고리즘] [Python] 최빈값 구하기 본문

알고리즘

[알고리즘] [Python] 최빈값 구하기

생각하는 코댕이 2023. 4. 2. 00:39
728x90

최빈값 구하기

내 코드

def solution(array):
    dict_ = {}
    for arr in array:
        try:
            dict_[arr] += 1
        except:
            dict_[arr] = 1
    max_count = max(list(dict_.values()))
    list_ = [x for x in set(array) if (dict_)[x] == max_count] #리스트컴프리헨션
    return list_[0] if len(list_) == 1 else -1 #삼항연산자

베스트 코드

def solution(array):

    while len(array) != 0:
        for i, a in enumerate(set(array)):  #set(집합)은 중복값을 무시하고, 원소의 종류를 오름차순 정렬해준다.
            array.remove(a)
        if i == 0:
            return a
    return -1

평소 데이터 자체에 변화를 주는 remove나 pop의 사용을 꺼려했었는데,
경우에 따라서는 제거를 활용하여 원하는 바를 도출 할 수 있음을 크게 느끼는 계기가 되었다.

생각해보면 빈리스트에 append는 하면서, 왜 지울 생각을 못했던걸까?

다음에는 소거법도 고려하도록 하자!

728x90