본문 바로가기

Algorithm/Brute Force

(C++) - LeetCode (easy) 1380. Lucky Numbers in a Matrix

반응형

https://leetcode.com/problems/lucky-numbers-in-a-matrix/description/

전수조사 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

정답 vector luckies, 행 r, 열 c를 선언 후 적절히 초기화해줍니다.

📔 풀이과정

matrix의 모든 원소를 조사하며 매 원소마다 다음을 수행합니다.

1. 현재 행에서 가장 작은 값을 minRowNum에 저장해줍니다.

2. 현재 열에서 가장 큰 값을 maxRowNum에 저장해줍니다.

3. maxRowNum, minRowNum이 같다면 lucky number이므로 luckies 배열에 현재 원소를 push_back해줍니다.

📔 정답 출력 | 반환

luckies를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    vector<int> luckyNumbers (vector<vector<int>>& matrix) {
        int r = matrix.size();
        int c = matrix[0].size();
        vector <int> luckies;
        for(int i = 0; i < r; i++) {
            for(int j = 0; j < c; j++) {
                int minRowNum = matrix[i][j];
                int maxColNum = 0;
                for(int l = 0; l < c; l++) {
                    minRowNum = min(minRowNum, matrix[i][l]);
                }
                for(int k = 0; k < r; k++) {
                    maxColNum = max(maxColNum, matrix[k][j]);
                }
                if(minRowNum == maxColNum) {
                    luckies.push_back(minRowNum);
                }
             }
        }
        return luckies;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.