https://school.programmers.co.kr/learn/courses/30/lessons/120812
차례대로 차근차근 풀어서 생각하지 않으면 힘든 문제였다!
처음에는 array에 값이 하나만 주어지는 경우를 빼먹었고
또 어쩌다가는 최빈값을 자주 나온 횟수로 생각해서 틀렸다😃
def solution(array):
answer = 0 # 최빈값
num = {}
for i in array:
if i in num:
num[i] += 1
else:
num[i] = 1
# print(num) # {1: 5, 2: 2, 3: 1, 4: 1, 5: 1, 8: 4}
# print(num.items()) # dict_items([(1, 5), (2, 2), (3, 1), (4, 1), (5, 1), (8, 4)])
# items() 함수로 num 딕셔너리의 key와 value를 얻어
# lambda 함수를 통해 x[1]의 값만 뽑아 정렬해준다
# reverse=True를 통해 내림차순으로 정렬해준다
sorted_num = sorted(num.items(), key=lambda x: x[1], reverse=True)
if len(sorted_num) == 1: # 입력된 매개변수가 한개일 경우
answer = sorted_num[0][0]
elif sorted_num[0][1] == sorted_num[1][1]: # 최빈값이 두개 이상일 경우
answer = -1
else:
answer = sorted_num[0][0]
return answer
a = solution([1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 8, 8, 8, 8])
print(a) # 1
'코딩테스트' 카테고리의 다른 글
코딩테스트 입문_dict.fromkeys() swapcase() title() 교집합 (0) | 2023.04.04 |
---|---|
코딩테스트 입문_최댓값 만들기(1) (2) | 2023.03.31 |
코딩테스트 입문_분수의 덧셈_fractions 모듈 (2) | 2023.03.24 |
코딩테스트 카카오_숫자 문자열과 영단어_isdecimal replace (0) | 2023.03.24 |
코딩테스트 입문_옹알이(1)_permutations (2) | 2023.03.23 |