최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.
정수 배열 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
제출 코드
# 배열의 값들을 하나씩 순회해서 같은 숫자들을 카운트 후 가장 많은 카운트를 가진 숫자를 출력
def solution(array):
#최빈값 구할 딕셔너리 선언
cnt_dict = {}
#정수 리스트 매개변수 순회, 요소가 딕셔너리에 있으면 1 추가, 없으면 1 로 지정
for _ in array:
if _ not in cnt_dict:
cnt_dict[_] = 1
else:
cnt_dict[_] += 1
max_cnt = max(cnt_dict.values()) # cnt_values의 최빈값 구하기
#동일 최빈값을 가진 숫자를 판별 할 리스트 생성
discriminant = []
# cnt_dict의 key,value 순회
for i, j in cnt_dict.items():
if j == max_cnt:
discriminant.append(i)
#판별리스트의 len으로 동일 최빈값 있는지 확인
if len(discriminant) > 1:
return -1
else:
return discriminant[0]
'코딩테스트' 카테고리의 다른 글
프로그래머스 - 문자열 정렬하기 (1) (0) | 2023.04.03 |
---|---|
프로그래머스 - 최댓값 만들기 (1) (0) | 2023.04.01 |
백준 5597 - 과제 안내신 분..? (0) | 2023.03.28 |
백준 10810 - 공넣기, 10813 - 공 바꾸기 (0) | 2023.03.28 |
백준 2439 - 별찍기 2 (0) | 2023.03.28 |