-
[Java 자바] 프로그래머스 Lv 0 - 최빈값 구하기Study/Java 2024. 9. 30. 15:22728x90반응형
목차
1. 문제 설명
728x90문제 설명
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.
정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요.
최빈값이 여러 개면 -1을 return 합니다.제한사항
- 0 < array의 길이 < 100
- 0 ≤ array의 원소 < 1000
2. 입출력 예시
입출력 예시
#1
[1, 2, 3, 3, 3, 4]에서 1은 1개 2는 1개 3은 3개 4는 1개로 최빈값은 3입니다.
#2
[1, 1, 2, 2]에서 1은 2개 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return 합니다.
#3
[1]에는 1만 있으므로 최빈값은 1입니다.
3. 문제 풀이
반응형문제 풀이
1. 길이가 1000인 배열 index를 만든다. (0~999가 얼마나 등장했는지 세기 위한 배열)
2. 변수 max를 만든다. (가장 큰 등장 횟수를 저장하기 위한 변수)
3. for문을 사용하여, 배열 array의 값을 넣어 배열 index에서 해당 인덴스에 1씩 증가시킨다.
4. for문을 사용하여, 배열 index에서 가장 높은 숫자를 가진 인덱스를 찾아 answer에 넣는다.
5. else if를 사용하여 최빈값이 하나라도 같으면 answer에 -1을 넣는다.
6. answer를 반환한다.
class Solution { public int solution(int[] array) { int answer = 0; int[] index = new int [1000]; int max = 0; for(int i=0; i<array.length; i++){ index[array[i]]++; } for(int i=0; i<index.length; i++){ if(max < index[i]){ max = index[i]; answer = i; } else if (max == index[i]){ answer = -1; } } return answer; } }
메모
for(int i=0; i<index.length; i++){ if(max < index[i]){ max = index[i]; answer = i; }
: 배열 index를 순회하면서, max의 값이 index[i] 값 보다 작으면, max에 index[i] 값을 넣고 answer에도 i의 값을 넣는다.
728x90반응형'Study > Java' 카테고리의 다른 글
[Java 자바] 프로그래머스 Lv 0 - 피자 나눠 먹기 (1) (0) 2024.10.02 [Java 자바] 프로그래머스 Lv 0 - 짝수는 싫어요 (0) 2024.10.01 [Java 자바] 프로그래머스 Lv 0 - 중앙값 구하기 (0) 2024.09.29 [Java 자바] 프로그래머스 Lv 0 - 나머지 구하기 (3) 2024.09.28 [Java 자바] 프로그래머스 Lv 0 - 배열 두 배 만들기 (0) 2024.09.27