[Programmers] Lv0 최빈값 구하기 Java
2023. 1. 29. 03:39ㆍCS/자료구조 & 알고리즘
728x90
문제 출처
[프로그래머스 코딩 테스트 연습]
https://school.programmers.co.kr/learn/courses/30/lessons/120812
문제 풀이
- 최빈값은 가장 자주 나오는 값이다.
- 또한 원소가 최대 1000 미만이므로 배열에 맵핑이 가능하다.
- 가장 큰 값 + 1 만큼 배열의 길이를 만들고 거기에 나오는 ㅊcount를 적었다.
- 그리고 얻은 countArray에 최댓값 즉 최빈값이 여러개 나온지 확인후 결과 값을 주게 하였다.
소스 코드
import java.util.Arrays;
public class Solution {
public int solution(int[] array) {
int[] countArray = new int[Arrays.stream(array).max().orElseThrow() + 1];
for (int i : array)
countArray[i]++;
int max = Arrays.stream(countArray).max().orElseThrow();
int result = 0;
int count = 0;
for (int i = 0; i < countArray.length; i++) {
if (countArray[i] == max) {
count++;
result = i;
}
}
return count > 1 ? -1 : result;
}
}
728x90
'CS > 자료구조 & 알고리즘' 카테고리의 다른 글
[Programmers] Lv0 저주의 숫자 3 Java (0) | 2023.01.31 |
---|---|
[Programmers] Lv0 다항식 더하기 Java (0) | 2023.01.30 |
[Programmers] Lv0 분수의 덧셈 Java (0) | 2023.01.28 |
[Programmers] Lv0 안전지대 Java (0) | 2023.01.27 |
[Programmers] Lv0 겹치는 선분의 길이 Java (0) | 2023.01.26 |