카테고리 없음

최빈값 구하기

김은수2 2023. 4. 4. 18:02

문제

 

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

 

본 문제는 프로그래머스에서 가져온 것입니다. 제가 오늘 푼 문제중에 인상깊은 문제였기 때문에 리뷰를 해보고자 

블로그에 가져와 봤습니다. 

 

 

접근 

 

일단 저는 가장 많이 나온 값이 무었인지 알아야 하므로 

이중으로 for 문을 돌려서 array의 원소별로 몇번이나 나왔는지 카운트 해주려고 했습니다. 

 

그러나 그렇게 하면 array의 갯수만큼이나 값을 저장할 변수가 필요해서 비효율적이라고 판단 

 

딕셔너리로 풀어보기로 했음

 

예를 들어 [1, 2, 3, 4, 5, 5, 2 ] 라는 리스트가 있으면

 

dict = {1 : 1, 2 : 2, 3 : 1, 4 : 1, 5 : 2}

이런식으로 키 마다 몇번 나왔는지 값을 저장 

 

for i in set(li):
    for v in li:
        if i == v:
            딕션너리키에 i 저장
            밸류에 +1

 

이런식으로 생각하였다.  그래서 최종적인 코드

dict = {}
for i in set(li):
    for v in li:
        if i == v:
        	dict['i] = 0
        	dict['i'] =+ 1
            #딕션너리키에 i 저장
            #밸류에 +1

 

 

 

 

 

 

 

최댓값 찾기

 

문제 설명

 

[3, 4, 5, 1, 2, 4] 중에 가장 큰 수를 반환한다. 

 

일일히 비교하는 방법 

 

def find_max_num(array):
	for num in array:
    	for compare_num in array:
        	if num < compare_num:
            	break
            else:
            	return num

 

내가 한 방법

 

def find_max_num(array):
    pre_i = array[0]
    for i in array:
        if i > pre_i:
            pre_i = i
    return pre_i

변수를 선언해서 이전숫자와 비교해서 크면 넣는다.