반응형
최빈값 구하려다가 이문제를 결국 풀지못하였다.
def solution(array):
array1=list(set(array))
cnt=0
for i in array1:
if cnt<array.count(i):
cnt= array.count(i)
maus=0
answer = cnt
return answer
그래서 다른사람의 코드를 살펴보았다.
프로그래머스 | 최빈값 구하기 [파이썬 Python]
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def
dduniverse.tistory.com
def solution(array):
count = [0] * (max(array)+1) # 숫자 출연 횟수를 셀 리스트
for i in array:
count[i] += 1
m = 0 # 최빈값의 개수
for c in count:
if c == max(count):
m += 1
if m > 1: # 최빈값이 2개 이상이면 -1을 리턴
return -1
else: # 최빈값이 1개이면 해당 숫자를 리턴
return count.index(max(count))
위코드를 작성하면 된다.
원리는 숫자를 셀 리스트를 만들어서 최빈값을 세어서 count변수에 넣어둔다.
이제 리스트에서 최빈값이 되는 수가 2개이상인경우를 대비해서 m+1을 해줍니다.
count값에 최빈값의 개수가 적혀있고 이것이 같은경우가 2개이상인경우를 ++해주는 것이다.
반응형
'프로그래머스' 카테고리의 다른 글
x만큼 간격이 있는 n개의 숫자 (1) | 2024.02.26 |
---|---|
해시문제 완주하지 못한 선수 (0) | 2024.02.23 |
특수문자 풀기 (0) | 2024.02.22 |
대소문자 변환 코드 (0) | 2024.02.22 |
나만의 문자열 분해방법 (0) | 2024.02.22 |