문제 설명
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
제한사항
0 < array의 길이 < 100
0 ≤ array의 원소 < 1000
입출력 예
array | result |
---|---|
[1, 2, 3, 3, 3, 4] | 3 |
[1, 1, 2, 2] | -1 |
[1] | 1 |
필수 키워드
set(array) : 배열(array)의 중복을 제거해준다.
dictionary : key:value로 구성된 자료형
구현 코드
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())