728x90
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/120812
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
2. 제한사항
3. Python code
def solution(array):
#딕셔너리 생성
count = {}
for num in array:
if num not in count:
count[num] = 0
count[num] +=1
# 가장 큰 빈도수 찾기
max_val = 0
for k, v in count.items():
if v > max_val:
max_val = v
#최빈값이 여러개일 경우와 한개일 경우 분기문
max_cnt = [k for k,v in count.items() if v == max_val]
if len(max_cnt) >1 :
return -1
else:
return max(count, key=count.get)
4. 풀이
1. key가 고유 숫자, value가 빈도수인 딕셔너리 생성
2. 생성한 딕셔너리에서 최대 빈도수 찾기
3. 최대 빈도수가 여러개일 경우와 한 개일 경우 나누기