본문 바로가기

프로그래머스/기타

가장 큰 정사각형 찾기

728x90

programmers.co.kr/learn/courses/30/lessons/12905

 

코딩테스트 연습 - 가장 큰 정사각형 찾기

[[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] 9

programmers.co.kr

 

#include <iostream>
#include<vector>
#include <algorithm>
using namespace std;

int solution(vector<vector<int>> board) {
    int answer = 1;
    for(int i=1;i<board.size();i++){ 
        for(int j=1;j<board[i].size();j++){ 
            if(board[i][j] && 
               board[i][j-1] && board[i-1][j] && board[i-1][j-1]){
                board[i][j] = min(min(board[i][j-1],board[i-1][j]),board[i-1][j-1])+1; 
                if(board[i][j]>answer) answer = board[i][j];
       
            }
        }
    }
    int zero_chk = 0; 
    for(int i=0;i<board.size();i++){
        for(int j=0;j<board[i].size();j++){
            zero_chk+=board[i][j];
        }
    }
    if(zero_chk == 0) return 0;
    return answer*answer;
}

'프로그래머스 > 기타' 카테고리의 다른 글

2*n 타일링  (0) 2021.02.03
피보나치 수  (0) 2021.02.01
행렬의 곱셈  (0) 2021.01.20
캐시 - 카카오 기출  (0) 2021.01.20
숫자의 표현  (0) 2021.01.19