[ 프로그래머스 입문 ] LV0 최빈값 구하기

2025. 6. 12. 00:51·코딩테스트/프로그래머스 입문

📚 문제 설명

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

 

 

 

💻 구현 코드

import java.util.HashMap;
import java.util.Map;

    class Solution {
        public static int solution(int[] array) {
            Map<Integer, Integer> numberList = new HashMap<>();
            int result = -1;
            int maxData = -1;

            for(int data : array){
                if(numberList.containsKey(data)){
                    numberList.put(data,numberList.get(data)+1);
                    continue;
                }
                numberList.put(data,1);
            }

            for(Map.Entry<Integer, Integer> data : numberList.entrySet()){
                int key = data.getKey();
                int value = data.getValue();

                if(value>maxData){
                    maxData = value;
                    result = key;
                }else if(value == maxData){
                    result  = -1;
                }
            }

            return result ;

        }
    }

 

 

📌 구현코드 해설

1. map을 사용하여, key value를 사용하여 각 값에 대한 빈도수를 저장하였다. 

2. for - each문을 사용하여, 최빈값을 계산하고 해당되는 key값을 result에 저장하였다. 

3. 만약 최빈값과 같은 값이 하나 더 있다면, result에 -1이 저장되도록 하였다. 

 

 

🍏 회고 / 새롭게 알게 된 점

 

  • for-each 문에서 Map을 순회할 때는 Map.Entry를 사용해야 한다는 것을 새롭게 알게 되었다. 
  • 또한, Map.entrySet()을 사용하면 Map의 각 key-value 쌍을 하나씩 포함한 Set을 얻을 수 있다는 점도 알게 되었다.
  • 까먹고 있었는데,,, Map에는 getOrDefault를 사용하는 방법이 있었따.. ^,^ 제발 기억하자 
getOrDefault(number, 0) 

 

 

'코딩테스트 > 프로그래머스 입문' 카테고리의 다른 글

[ 프로그래머스 입문 ] LV0 피자 나눠먹기 1, 2, 3  (1) 2025.06.12
[ 프로그래머스 입문 ] LV0. 짝수는 싫어요  (0) 2025.06.12
[ 프로그래머스 입문 ] LV0 중앙값 구하기  (0) 2025.06.11
[ 프로그래머스 입문 ] LV0. 배열 두배 만들기  (0) 2025.06.11
[ 프로그래머스 입문 ] LV0. 분수의 덧셈  (0) 2025.06.11
'코딩테스트/프로그래머스 입문' 카테고리의 다른 글
  • [ 프로그래머스 입문 ] LV0 피자 나눠먹기 1, 2, 3
  • [ 프로그래머스 입문 ] LV0. 짝수는 싫어요
  • [ 프로그래머스 입문 ] LV0 중앙값 구하기
  • [ 프로그래머스 입문 ] LV0. 배열 두배 만들기
Adose
Adose
  • Adose
    도즈의 개발 블로그
    Adose
  • 전체
    오늘
    어제
    • 분류 전체보기 (186)
      • JAVA (22)
      • 스프링 | 스프링 부트 (31)
        • 스프링 시큐리티 (1)
        • 채팅 (1)
      • 스프링 프로젝트 (5)
        • JDBC - 은행앱 구현 (1)
        • Spring Boot - 독서 블로그 프로젝트 (3)
        • 개인 프로젝트 - CoreBrief (1)
      • 가상화 기술 (1)
      • Git (1)
      • 코딩테스트 (37)
        • 프로그래머스 입문 (68)
      • AWS (1)
      • 데이터베이스 (0)
      • CS 공부 (4)
      • 알고리즘, 자료구조 (5)
      • 우테코 프리코스 (7)
      • 트러블 슈팅 (1)
      • 프론트 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    springdatajdbc
    코딩테스트
    jdbc
    멋쟁이사자처럼백엔드
    Java
    스프링부트
    LV0
    LV1
    GIT
    Spring
    프론트
    LV2
    자바
    test
    멋쟁이사자처럼
    프로그래머스
    스프링
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Adose
[ 프로그래머스 입문 ] LV0 최빈값 구하기
상단으로

티스토리툴바