https://school.programmers.co.kr/learn/courses/30/lessons/120812
정답
import java.util.*;
class Solution {
public int solution(int[] array) {
HashMap<Integer,Integer> map = new HashMap<>();
for(int num : array)
{
map.put(num, map.getOrDefault(num,0)+1);
}
List<Integer> keySet = new ArrayList<>(map.keySet());
//value를 기준으로 내림차순으로 정렬
List<Map.Entry<Integer,Integer>>list = new ArrayList<>(map.entrySet());
list.sort((e1,e2)-> e2.getValue().compareTo(e1.getValue()));
//최빈값이 중복되는지 확인
if(list.size()>1 && list.get(0).getValue().equals(list.get(1).getValue()))
{
return -1;
}
else
{
return list.get(0).getKey();
}
}
}
다른 사람의 풀이
import java.util.*;
class Solution {
public int solution(int[] array) {
int maxCount = 0;
int answer = 0;
Map<Integer, Integer> map = new HashMap<>();
// getOrDefault : 찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메서드
// getPrDefault(Object key, V DefaultValue)
// 매개변수 : 이 메서드는 두개의 매개변수를 허용
// key : 값을 가져와야 하는 요소의 키
// defaultValue : 지정된 키로 매핑된 값이 없는 경우 반환되어야 하는 기본값
// 반환값 : 찾는 key가 존재하면 해당 key에 매핑되어 있는 값을 반환하고, 그렇지 않으면 디폴트 값이 반환
for(int number : array) {
int count = map.getOrDefault(number, 0) + 1;
if(count > maxCount) {
maxCount = count;
answer = number;
}
else if(count == maxCount) {
answer = -1;
}
map.put(number, count);
}
return answer;
}
}
'Java > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 피자 나눠 먹기(1) (0) | 2024.04.18 |
---|---|
[JAVA] 프로그래머스 - 짝수는 싫어요 (0) | 2024.04.18 |
[JAVA] 프로그래머스 - 배열 두배 만들기 (0) | 2024.04.18 |
[JAVA] 프로그래머스 - 분수의 덧셈 (0) | 2024.04.18 |
[JAVA] 프로그래머스 - 이차원 배열 대각선 순회하기 (0) | 2024.04.17 |