코린이의 소소한 공부노트

[LeetCode/Medium] 229. Majority Element II 본문

코딩테스트 풀이/JAVA

[LeetCode/Medium] 229. Majority Element II

무지맘 2023. 1. 23. 23:42

1. Input

1) int[] nums

 

2. Output

1) nums의 요소 중 그 개수가 nums의 길이 나누기 3의 몫보다 많은 요소를 담은 List

 

3. Constraint

1) 1 <= nums.length <= 5 * 10^4

2) - 10^9 <= nums[i] <= 10^9

 

4. Example

Input: nums = [3,2,3] -> Output: [3]

Input: nums = [1,2] -> Output: [1,2]

 

5. Code

1) 첫 코드(2023/01/23)

import java.util.*;

List<Integer> answer = new ArrayList<Integer>();
HashMap<Integer,Integer> m = new HashMap<Integer,Integer>();
for(int i : nums){
    if(m.containsKey(i)) m.replace(i, m.get(i)+1);
    else m.put(i,1);
}
Iterator it = m.entrySet().iterator();
while(it.hasNext()){
    Map.Entry e= (Map.Entry)it.next();
    if((int)e.getValue()>nums.length/3) answer.add((int)e.getKey());
}
return answer;

- 메모리 사용량은 아주 적은 편이었지만, 실행시간이 다소 긴 편이었다.