leetcode - 169. Majority Element
주제
array 중복 요소 체크
문제
https://leetcode.com/problems/majority-element/description/
배열 안의 요소들 중 중복된 개수가 많은 요소를 리턴하라
입출력 예시
예시 1
입력: nums = [3,2,3]
출력: 3
예시 2
입력: nums = [2,2,1,1,1,2,2]
출력: 2
조건
- n == nums.length
- 1 <= n <= $5 * 10^4$
- $-10^9$ <= nums[i] <= $10^9$
문제풀이
- 배열을 내림차순으로 정렬한다.
- map에 key: 배열의 요소값, value: count값을 삽입한다.
- map의 요소를 꺼내어 value가 가장 큰 값의 key를 저장 한다.
- value가 가장 큰 값의 key를 리턴한다.
import java.util.*;
class Solution {
public int majorityElement(int[] nums) {
Map<Integer, Integer> map = new HashMap<>();
Arrays.sort(nums);
for (int i = 0; i < nums.length; i++) {
map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
}
Iterator<Integer> iterator = map.keySet().iterator();
int keyValue = 0;
int maxValue = 0;
while (iterator.hasNext()) {
int key = iterator.next();
int value = map.get(key);
if (maxValue < value) {
maxValue = value;
keyValue = key;
}
}
return keyValue;
}
}
댓글남기기