본문 바로가기
study/CodingTest

최빈값 알고리즘 w/파이썬

by 고기만두(개발자) 2023. 5. 28. 19:28
728x90
반응형

가장 많이 나타난 값 : 최빈값

최빈값이 무엇인지를 구하는 알고리즘.

스코어 배열을 가지고 판단하기 위해

스코어 범위를 나타내는 배열이 하나 필요하다

범위의 인덱스 자리값에 해당하는 스코어를 하나씩 추가한다

3이 나오면 3번지에 +1 이런 식으로.

그렇게 채워진 범위 인덱스 배열에서 최댓값이 최빈값이 되는 구조.

#[?]주어진 데이터에서 가장 많이 나타난 값
import sys

#[1]input
scores = [1,3,4,3,5] #0~5점까지만 허용한다고 가정
indexes = [0] * 6 #0~5점 점수 인덱스: 갯수 저장
max = -sys.maxsize - 1 #맥스알고리즘 적용
mode = 0 #최빈값이 담길 그릇
n = len(scores)
m = len(indexes)

#[2]process
for i in range(0, n):
	indexes[scores[i]] = indexes[scores[i]]+1 #count 1씩 증가

for i in range(0, m):
	if indexes[i] > max:
		max = indexes[i] #최대
		mode = i #mode

#[3]output
print(f'최빈값 {mode} => {max}번 나타남')

 

반응형

인풋이 정제되지 않은 상황에서의 문제도 좀 풀어봐야겠다.

728x90
반응형

'study > CodingTest' 카테고리의 다른 글

큰 수의 법칙 w/파이썬  (0) 2023.08.21
그룹 알고리즘 w/파이썬  (0) 2023.05.29
병합 알고리즘 w/파이썬  (0) 2023.05.21
이진 검색 알고리즘 w/파이썬  (0) 2023.05.20
파이썬 반복문 누적합계  (0) 2023.03.20

댓글