최빈값 구하기

kyle·2023년 3월 2일
0
post-custom-banner

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

제한사항
0 < array의 길이 < 100
0 ≤ array의 원소 < 1000

입출력 예

arrayresult
[1, 2, 3, 3, 3, 4]3
[1, 1, 2, 2]-1
[1]1

필수 키워드
set(array) : 배열(array)의 중복을 제거해준다.
dictionary : key:value로 구성된 자료형

  • dictionary.values() : value만 필요할 때
  • dictionary.keys() : key만 필요할 때
  • dictionary.items() : Key, Value 쌍이 필요할 때
    list.count(num) : num이 해당 list에 몇개 있는지 확인 가능

구현 코드

def solution(array):
    keys = set(array) #array에서 중복제거
    dictForCount = {} #값들의 출현횟수 저장용도
    maxList=[] #최대빈도값 저장용도
    for num in keys: #array의 원소들의 빈도를 dictForCount에 저장함
        dictForCount[num] = array.count(num) # 리스트의 원소:해당원소출현횟수
        
    for num in keys: #최빈값을 maxList에 저장함
        if dictForCount[num] == max(dictForCount.values()):
            maxList.append(num)
    
    if len(maxList) > 1: #최빈값이 하나인 경우 해당 값을 리턴, 최빈값이 하나 이상일 경우 -1을 리턴
        return -1
    else:
        return list(dictForCount.values())
profile
성장하는 개발자
post-custom-banner

0개의 댓글