tevelop RSS 태그 관리 글쓰기 방명록
2022-12-03 19:14:14

https://school.programmers.co.kr/learn/courses/30/lessons/120812?language=java 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

class Solution {
    public int solution(int[] arr) {
        int answer = 0;
        // 배열의 숫자 중 가장 큰 숫자 번호만큼 배열을 만든다.
        int[] cntArr = new int[Arrays.stream(arr).max().getAsInt() + 1];

        // 각 숫자가 나올때마다 카운트 올려줌
        for (int i = 0; i < arr.length; i++) {
            cntArr[arr[i]]++;
        }

        // 최빈값이 몇번 나와있는지 찾기
        int maxCnt = 0;
        for (int i = 0; i < cntArr.length; i++) {
            if (maxCnt < cntArr[i]) {
                maxCnt = cntArr[i];
            }
        }

        // 최빈값이랑 같은 빈도 숫자 찾기
        ArrayList<Integer> maxNumbers = new ArrayList<>();
        for (int i = 0; i < cntArr.length; i++) {
            if (maxCnt == cntArr[i]) {
                maxNumbers.add(i);
            }
        }

        // arraylist 사이즈가 1이면 하나 넣은거 리턴. 하나가 아니면 -1 리턴
        if (maxNumbers.size() == 1) {
            answer = maxNumbers.get(0);
        } else {
            answer = -1;
        }

        return answer;
    }
}

'내일배움캠프 > TIL' 카테고리의 다른 글

2022.12.9  (0) 2022.12.09
2022.12.7  (0) 2022.12.07
2022.12.1 / Optional, Stream 연습  (0) 2022.12.01
2022.11.30  (0) 2022.11.30
2022.11.29 / Optional  (1) 2022.11.29
tevelop. Designed by 코딩재개발.