최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.
정수 배열 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
변수로 정수배열이 주어지는데 이 정수배열의 순서를 뒤집어서 return해야 한다.
아래 두 가지 방법으로 풀어봤다.
def solution(array):
a_len = len(array) # 입력 받은 배열의 길이 변수
a_cnt = {} # array 내에 각 변수 count 해주기 위해 dict 정의
cnt = 0 # array 내 변수 count
dup_cnt = 0 # 최빈수 중복 값이 동일할 경우 count
for i in array:
cnt = 0
for j in range(0,a_len):
if i == array[j]:
cnt+=1
a_cnt[i]=cnt # a_cnt dict의 key = i / value = cnt 값
max_val = max(a_cnt.values()) # a_cnt dict value값 중 최대 값
max_key = max(a_cnt, key=a_cnt.get) # a_cnt value 최대 값의 key
# 만약 a_cnt value값이 중복되면 -1 을 return 해주기 위한 코드
for value in a_cnt.values():
if value == max_val:
dup_cnt+=1
if dup_cnt >=2:
return -1
return max_key