본문 바로가기

프로그래머스

최빈값 구하기

반응형

최빈값 구하려다가 이문제를 결국 풀지못하였다.

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

그래서 다른사람의 코드를 살펴보았다.

출처:https://dduniverse.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%B5%9C%EB%B9%88%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC-Python

 

프로그래머스 | 최빈값 구하기 [파이썬 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