1) 처음에는 정사각형이니까 우측 하단부가 1일 경우에 상하좌우를 일일 확인하는 방식으로 하려고 했는데, 정사각형이 클수록 효율이 좋지 않아지므로
이건 아니다 싶음
2) 정사각형을 작게 만들어보면서 생각해보면 다이나믹 프로그래밍으로 접근하면
풀수 있다고 생각함.
: min함수의 경우 여러개를 한번에 확인할때는 이렇게 사용한다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<vector<int>> board)
{
int row_size = board.size() - 1;
int col_size = board.size() - 1;
int answer = board[row_size][col_size];
for(int i = 1; i < board.size(); i++)
{
for(int j = 1; j < board[i].size(); j++)
{
if(board[i][j] == 1)
{
board[i][j] = min({board[i - 1][j],board[i - 1][j - 1], board[i][j -1]}) + 1;
answer = max(board[i][j], answer);
}
}
}
answer *= answer;
return answer;
}