[Programmers] Lv0 최빈값 구하기 Java
2023. 1. 29. 03:39ㆍCS/자료구조 & 알고리즘
728x90
문제 출처
[프로그래머스 코딩 테스트 연습]
https://school.programmers.co.kr/learn/courses/30/lessons/120812
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
- 최빈값은 가장 자주 나오는 값이다.
- 또한 원소가 최대 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 |