반응형
https://leetcode.com/problems/sort-array-by-increasing-frequency/description/
📕 풀이방법
📔 입력 및 초기화
원소와 빈도수를 저장할 map freqMap을 static 선언 후 frequencySort함수 호출시마다 clear해주고 nums의 원소별 빈도수를 저장합니다.
📔 풀이과정
빈도수에 대한 오름차순, 빈도수가 같다면 숫자가 큰 순으로 내림차순 정렬을 구현해 sort함수의 3번째 인자로 넘겨 정렬 해줍니다.
📔 정답 출력 | 반환
정렬된 nums를 반환합니다.
📕 Code
📔 C++
class Solution {
static map<int, int> freqMap;
public:
static bool cmp(int a, int b) {
if (freqMap[a] == freqMap[b]) {
return a > b;
}
return freqMap[a] < freqMap[b];
}
vector<int> frequencySort(vector<int>& nums) {
freqMap.clear();
for (auto n : nums) {
freqMap[n]++;
}
sort(nums.begin(), nums.end(), cmp);
return nums;
}
};
map<int, int> Solution::freqMap;
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - LeetCode (easy) 1652. Defuse the Bomb (0) | 2024.05.24 |
---|---|
(C++) - LeetCode (easy) 1646. Get Maximum in Generated Array (1) | 2024.05.23 |
(C++) - LeetCode (easy) 1629. Slowest Key (0) | 2024.05.15 |
(C++) - LeetCode (easy) 1619. Mean of Array After Removing Some Elements (0) | 2024.05.13 |
(C++) - LeetCode (easy) 1603. Design Parking System (0) | 2024.05.09 |