최빈수 구하기

uglyduck.dev·2020년 9월 29일
0

알고리즘 🧮

목록 보기
11/16

문제

  • 가장 많이 출현한 수를 출력하시오

예제 입력

1 2 2 3 1 4 2 2 4 3

예제 출력

최빈수는:2 cnt:4

풀이

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        
        int[] inputNum = new int[10];
        for(int i=0; i<10; i++{
            inputNum[i] = scan.nextInt();
        }
        
        // 사용자 input
        // 1 2 2 3 1 4 2 2 4 3
        // 1: 2
        // 2: 4 -> 최빈수
        // 3: 2
        // 4: 2
        
        int[] mode = new int[10];
        // index -> 출현한 수
        // index 값 -> index(출현한 수)가 몇 번 나왔는지 저장하는 용도
        // mode[3] = 5, => 3번 숫자가, 5번 출현했다
        // inputNum => 1 2 2 3 1 4 2 2 4 3
        
        for(int i=0; i<10; i++{
            mode[inputNum[i]]++;
        }
        //mode[1] == 2
        //mode[2] == 4
        //mode[3] == 2
        //mode[4] == 2
        
        int modeNum = 0; // 최빈수
        int modeCnt = 0; // 최빈수가 나온 횟수
        
        for(int i=0; i<10; i++){
            if(modeCnt < mode[i]){
                modeCnt = mode[i];
                modeNum = i;
            }
        }
    }
    System.out.println("최빈수는:" + modeNum + " cnt:" + modeCnt);
}

Reference

profile
시행착오, 문제해결 그 어디 즈음에.

0개의 댓글