#include <iostream> #include <vector> #include <algorithm> using namespace std; int solution(vector<vector<int>> board) { if(board.size() == 1 || board[0].size() == 1) { for(int i = 0; i < board.size(); i++) { for(int j = 0; j < board[0].size(); j++) { if(board[i][j] == 1) { return 1; } } } return 0; } else { int MaxLen = 0; for(int i = 1; i < board.size(); i++) { for(int j = 1; j < board[i].size(); j++) { if(board[i][j]) { board[i][j] = min({board[i-1][j-1], board[i-1][j], board[i][j-1]}) + 1; } if(MaxLen < board[i][j]) { MaxLen = board[i][j]; } } } return MaxLen * MaxLen; } } | cs |
'Programmers > Level 2' 카테고리의 다른 글
[프로그래머스 2] 캐시 (C/C++) (0) | 2020.01.05 |
---|---|
[프로그래머스 2] 뉴스 클러스터링 (C/C++) (0) | 2020.01.04 |
[프로그래머스 2] 오픈채팅방 (C/C++) (★) (0) | 2020.01.04 |
[프로그래머스 2] 폰켓몬 (C/C++) (0) | 2020.01.04 |
[프로그래머스 2] 소수 만들기 (C/C++) (0) | 2019.10.28 |