본문 바로가기
알고리즘

[알고리즘] How Many Numbers Are Smaller Than the Current Number

by keel_im 2021. 2. 4.
반응형

포인트

1. 뭔가 조금 더 효율 적인 코드가 있을 것 같다. 해시로 풀기는 하였지만 어딘가 찜찜하다.

🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. 

c++/cpp

#include <bits/stdc++.h>

using namespace std;

class Solution {
public:
    vector<int> smallerNumbersThanCurrent(vector<int>& nums) {
        unordered_map<int, int> map;
        unordered_set<int> s(nums.begin(), nums.end());

        for(auto ele1 : s){
            for(auto ele2 : nums){
                if(ele2 < ele1) map[ele1]++;
            }
        }

        vector<int> answer;

        for(auto ele : nums){
            answer.push_back(map[ele]);
        }
        
        return answer;    
    }
};

python

class Solution:
    def smallerNumbersThanCurrent(self, nums: List[int]) -> List[int]:
        set1 = set(nums)
        dict1 = dict()

        for ele in set1:
            for ele1 in nums:
                dict1[ele1] = dict1.get(ele1, 0) + 1
        
        return [dict1.get(ele) for ele in nums ]
        
반응형

댓글