오늘의 과제
리트코드 medium으로 분류된 Top K Frequent Elements 입니다.
이번 유형은 정렬입니다.
문제
https://leetcode.com/problems/top-k-frequent-elements/description/
먼저 문제 요구사항 요약입니다.
문자열이과 정수가 주어지면 문자의 빈도에 따라 내림차순으로 정렬 후 정수만큼 반환해주면 됩니다.
어제의 문자와 완전히 동일하게 풀었습니다.
코드입니다.
import java.util.*;
class Solution {
// 1. num을 센다.
// 2. 정렬을 한다.
// 3. k만큼 배열에 넣는다.
public int[] topKFrequent(int[] nums, int k) {
var map = new HashMap<Integer, Integer>();
for (int i : nums) {
map.put(i, map.getOrDefault(i, 0) + 1);
}
var keySet = new ArrayList<>(map.keySet());
keySet.sort((o1, o2) -> map.get(o2) - map.get(o1));
var answer = new int[k];
for (int i = 0; i < k; i++) {
answer[i] = keySet.get(i);
}
return answer;
}
}
배운 점
익숙하면서도 꼴려면 얼마든지 꼴 수 있는 정렬 문제가 나왔습니다.
오늘의 문제는 비굦거 굉장히 쉽게 나왔지만 내일부터 조금 기대 반 두려움 반이 있네요.
오늘의 한줄평
正進
'알고리즘 > 항해99' 카테고리의 다른 글
99클럽 코테 스터디 34일차 TIL + 스택/큐(Find the Winner of the Circular Game) (0) | 2024.06.22 |
---|---|
99클럽 코테 스터디 33일차 TIL + 정렬(Reordered Power of 2) (0) | 2024.06.21 |
99클럽 코테 스터디 31일차 TIL + 문자열(Sort Characters By Frequency) (1) | 2024.06.19 |
99클럽 코테 스터디 30일차 TIL + 문자열(Minimum Suffix Flips) (0) | 2024.06.18 |
99클럽 코테 스터디 29일차 TIL + 문자열(Iterator for Combination) (0) | 2024.06.17 |