728x90
반응형
문제
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
내 생각
Counter()는 값의 빈도를 알려준다! 그리고 most_common(숫자)를 이용하면 숫자만큼의 순위까지로도 보여준다.
count와 Counter을 정리해둬서 생각났다 (만약 안했으면 생각안났을듯..)
근데 다른 사람의 코드를 확인하다가 WOW했던 코드를 봤다 ! 내 코드 2번에 올려둔다.
enumerate를 통해 배열에 중복되지 않는 값을 구한 후 그 값을 배열에서 제거하는 방식이다! 문제를 풀면서 드는 생각은 정말 생각의 전환이 필요하다는 것이다 !
내 코드
1.
from collections import Counter
def solution(array):
counts = Counter(array)
most_common = counts.most_common(2)
if len(most_common) == 1 or most_common[0][1] != most_common[1][1]:
return most_common[0][0]
else:
return -1
2.
def solution(array):
while len(array) != 0:
for i, a in enumerate(set(array)):
array.remove(a)
if i == 0: return a
return -1
728x90
반응형
'Algorithm > 코딩테스트 (Python)' 카테고리의 다른 글
[SWEA 4869][파이썬 S/W 문제해결 기본]. 4일차 - 종이붙이기 (0) | 2023.10.25 |
---|---|
[프로그래머스] 무작위로 K개의 수 뽑기 (0) | 2023.10.24 |
[프로그래머스] 중복된 숫자 개수 (0) | 2023.10.22 |
[프로그래머스][정렬] 진료 순서 정하기 (1) | 2023.10.22 |
[프로그래머스][정렬] 예산 (1) | 2023.10.20 |
댓글