코딩,해볼까

07.16. 프로그래머스 : 몫 구하기, 최빈값 구하기 본문

Back/TIL

07.16. 프로그래머스 : 몫 구하기, 최빈값 구하기

떠굥 2023. 7. 16. 21:50

알고리즘 시트 정주행 시작!

① 몫 구하기  문제 바로가기 >

아래 셋만 알면 아주 쉽게 풀 수 있다.

// 몫 
/ 몫과 나머지 
% 나머지

② 최빈값 구하기  문제 바로가기 >

너무너무 어려웠던 최빈값 구하기. 하지만 이전에 풀면서 딕셔너리로 풀어보고자 했던 생각이 나서 그렇게 풀었다.

 

1. 나의 풀이

def solution(array):
    dic = {}
    max_num = 0
    answer = 0
    
    
    if len(array) == 1:
        answer = array[0]
    else:     
        for i in array:
            if i not in dic.keys():
                dic[i] = 1
            else:
                dic[i] += 1

        max_num += max(dic.values())  # 모든 value를 부를 때
        max_num_list = []

        for i in dic.keys():
            if dic[i] == max_num:
                max_num_list.append(i)

                if len(max_num_list) >= 2:
                    answer = -1  
                else:
                    answer += max_num_list[0]
        
    
    return answer

풀이방법 : 리스트의 {숫자:갯수} 로 딕셔너리를 생성. 딕셔너리의 갯수(value) 중 가장 큰 수를 알아내어 그 key 값을 출력하는 형식으로 풀었다.

느낀 점 : 딕셔너리가 정말 유용하다고 생각했으며, 다른사람의 풀이가 전부 어려웠다. 다음에 또 풀어봐도 괜찮을 것 같다.

 

2. 오늘 배운 것

1) 딕셔너리 사용 방법

- 딕셔너리는 key값이 정해져있다.

- key 값으로 value를 부른다.

- dic.keys() / dic.values() 로 key 값과 value 값 만을 불러낼 수 있다.

- for문 사용 시, for key, value in dic.items() 과 같이, key 값과 value 값 둘 다 불러낼 수 있다.

 

여러모로 유용했던 딕셔너리, 잊지말고 다른 문제에서도 사용해보자!

Comments