본문 바로가기

Algorithm/Brute Force

(C++) - LeetCode (easy) 1582. Special Positions in a Binary Matrix

반응형

https://leetcode.com/problems/special-positions-in-a-binary-matrix/description/

전수조사 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

행 row, 열 col, 정답 변수 ans, 어떤 행의 1이 나온 개수 rowCount, 열이 나온 개수 colCount를 선언 후 적절한 값으로 초기화합니다.

📔 풀이과정

1. mat의 원소를 순회하면서 rowCount, colCount값을 누적해 더해줍니다.2. 다시 mat을 순회하면서 어떤 행 i, 열 j값이 1이면서 그 행의 rowCount가 1이며 열의 colCount가 1이라면 special한 값이므로 ans를 1씩 더해줍니다.

📔 정답 출력 | 반환

ans를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    int numSpecial(vector<vector<int>>& mat) {
        int row = mat.size();
        int col = mat[0].size();
        int ans = 0;
        
        vector<int> rowCount(row,0);
        vector<int> colCount(col,0);

        for(int i = 0; i < row; i++) {
            for(int j = 0; j < col; j++) {
                rowCount[i] += mat[i][j];
                colCount[j] += mat[i][j];
            }
        }
        
        for(int i = 0; i < row; i++) {
            for(int j = 0; j < col; j++) {
                if(mat[i][j] && rowCount[i] == 1 && colCount[j] == 1) ans++;
            }
        }

        return ans;
    }
};

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