코테준비 - Kth Largest Element in an Array

정상화·2023년 2월 26일

LeetCode

목록 보기
185/222

Kth Largest Element in an Array


class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        return radixSort(nums).at(nums.size() - k);
    }

    vector<int> radixSort(vector<int> nums){
        std::for_each(nums.begin(), nums.end(),[](int& num){
           num += 10000;
        });
        for (int i = 0; i < 5; i++) {
            vector<list<int>> buck(10);
            for (auto &num: nums) {
                int ithDigit = getithDigit(num, i);
                buck.at(ithDigit).push_back(num);
            }
            int idx = 0;
            for (int j = 0; j < 10; j++) {
                for (auto &num: buck.at(j)) {
                    nums.at(idx++) = num;
                }
            }
        }
        std::for_each(nums.begin(), nums.end(),[](int& num){
            num -= 10000;
        });
        return nums;
    }

    int getithDigit(int num, int i){
        return num % (int)pow(10, i + 1) / pow(10, i);
    }
};
profile
백엔드 희망

0개의 댓글