개발 로그/알고리즘

1337. The K Weakest Rows in a Matrix.cpp

CyberSoak 2021. 10. 30. 11:54

 

🔑 value 기준으로 map sort하기. (pair 활용, static선언)

class Solution {
public:
    map<int,int>m;
    vector<int>res;
    static bool cmpp(const pair<int,int>&a,const pair<int,int>&b){
        if(a.second == b.second) return a.first < b.first;
        return a.second < b.second;
    }
    
    vector<int> kWeakestRows(vector<vector<int>>& mat, int k) {
        for(int i =0; i<mat.size();i++){
            int tmp =0;
            for(int j =0; j<mat[i].size(); j++){
                tmp += mat[i][j];
            }
            m.insert(make_pair(i,tmp));
        }
        vector<pair<int,int>>vec(m.begin(),m.end());
        
        sort(vec.begin(), vec.end(), cmpp);
        
        for(auto it : vec){
            res.push_back(it.first);
            if(--k == 0){
                break;
            }
        }
        return res;
    }
};