Krononberg

1380. Lucky Numbers in a Matrix.cpp 본문

개발 로그/알고리즘

1380. Lucky Numbers in a Matrix.cpp

k._. 2021. 10. 21. 14:10

 

🔑 각 컬럼의 최댓값과, 각 로우의 최소값에 해당하는 저장소를 각각 만들고, 서로 같은 수가 있으면 return.

 

class Solution {
public:
    vector<int> luckyNumbers (vector<vector<int>>& matrix) {
        
        int rowSize = matrix.size();
        int colSize = matrix[0].size();
        vector<int>colMax;
        vector<int>rowMin;
        vector<int>res;
        
        for(int j =0; j < colSize; j++){
            int tmp=INT_MIN;
            for(int i =0; i<rowSize; i++){
                if(matrix[i][j] > tmp) tmp = matrix[i][j];
            }
            colMax.push_back(tmp);
            cout << tmp << " ";
        }
        cout << endl;
        for(int i =0; i<rowSize; i++){
            int tmp=INT_MAX;
            for(int j =0; j< colSize; j++){
                if(matrix[i][j] < tmp) tmp = matrix[i][j];
            }
            rowMin.push_back(tmp);
            cout << tmp << " ";
        }
        
        for(int i =0; i<colMax.size(); i++){
            for(int j =0; j< rowMin.size(); j++){
                if(colMax[i] == rowMin[j])
                    res.push_back(colMax[i]);
            }
        }
        return res;
    }
};