코딩테스트 역량 강화 교육(거점형 특화 프로그램)이라는 프로그램에 참여해 공부한 내용입니다.
- IT 직무로 취업을 희망하는 지원자들이 코딩테스트를 통과할 수 있는 알고리즘을 활용한 프로그래밍 교육이며, PCCP 자격증 취득이 목표인 프로그램
- 상세 설명 - 수원대학교(대학일자리 플러스센터)
앞서 공부한 해시을 사용해 최빈값 구하기 문제를 풀어보겠다.
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array
가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
array | result |
---|---|
[1, 2, 3, 3, 3, 4] | 3 |
[1, 1, 2, 2] | -1 |
[1] | 1 |
from collections import Counter
def solution(array):
sH = Counter(array)
sH_max = max(sH.values())
max_list = []
for num, cnt in sH.items():
if cnt == sH_max:
max_list.append(num)
if len(max_list) > 1:
return -1
return max_list[0]
Counter
를 이용해 sH
에 array
의 빈도 수를 센 Counter 객체
를 반환sH_max
에 max(sH.values())
으로 sH
의 빈도 수 중 가장 큰 값을 저장sH
를 하나씩 돌며 value
의 값이 sH_max
와 동일한 key
값들을 max_list
에 삽입for
문 종료 후 max_list
가 1
보다 크면 즉, 최빈 값이 여러 개면 return -1
, 한 개면 return max_list[0]