[프로그래머스] 코딩테스트 입문 최빈값 구하기

2024. 7. 23. 19:56PYTHON

프로그래머스 입문

 

 

리스트를 새로 만들고 그안에 빈도 값을 세어 추가한다.

array 배열의 [0] 부터 array배열의 길이만큼 반복한다.

리스트이름.count(n) : n값이 리스트 안에 몇번 들어있는지 알려주는 코드

 

겹치는 최빈값이 없다면 최빈값 리스트안에는 1개의 값만 들어있을 것이다.

그렇지 않다면 -1을 출력하는 코드를 작성

 

 

나의 풀이

def solution(array):
    from collections import Counter

    count = Counter(array)
    max_freq = max(count.values())
    modes = [k for k, v in count.items() if v == max_freq]
    
    if len(modes) > 1:
        return -1
    
    return modes[0]

 

 

 

비슷한 다른사람의 풀이

def solution(array):
    answer = 0
    value = []
    count = []

    for i in range(len(array)):
        if array[i] not in value:
            value.append(array[i])

    for i in range(len(value)):
        count.append(array.count(value[i]))

    if count.count(max(count)) != 1:
        answer = -1
    else: answer = value[count.index(max(count))]

    return answer

 

비슷한 다른사람의 풀이2

def solution(array):
    answer = 0
    value = []
    count = []

    for i in range(len(array)):
        if array[i] not in value:
            value.append(array[i])

    for i in range(len(value)):
        count.append(array.count(value[i]))

    if count.count(max(count)) != 1:
        answer = -1
    else: answer = value[count.index(max(count))]

    return answer