일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Nextjs React 18
- context
- 고급안내서
- Programmers
- react hook
- React 18 Nextjs
- notFound()
- hook
- background: url
- React 고급 안내서
- React 고급안내서
- react
- Render Props
- React 공식문서
- Javascript
- codingtest
- React18
- background setInterval
- background tab
- react-helmet
- React API 참고서
- getUTCDate
- CSS
- next13 head
- RTK Query
- Next13
- Babel
- Nextjs
- React 18
- background setttimeout
Archives
- Today
- Total
akjfal
[Programmers] 가장 큰 정사각형 찾기 본문
class Solution
{
int[][] board;
int[][] check;
int row, column, answer;
public int solution(int [][]board)
{
this.board = board;
answer = 0;
row = board.length;
column = board[0].length;
check = new int[row][column];
refreshSquare();
checkSquare();
answer = answer * answer;
return answer;
}
void refreshSquare(){
for(int i = 0; i < row; i++){
int point = 0;
for(int j = column-1; j > -1; j--){
if(board[i][j] == 1){
point += 1;
check[i][j] = point;
}else{
point = 0;
}
}
}
}
void checkSquare(){
for(int i = 0; i < row; i++){
for(int j = 0; j < column; j++){
int num = check[i][j];
if(num > answer){
for(int k = i; k < i + num; k++){
if(num < answer)
break;
if(k == row){
num = k - i;
break;
}
if(check[k][j] < num){
num = check[k][j];
}
}
if(answer < num){
answer = num;
}
}
}
if(row - i < answer)
break;
}
}
}
class Solution
{
public int solution(int [][]board)
{
int answer = 0;
int row = board.length;
int column = board[0].length;
for(int i = 1; i < row; i++){
for(int j = 1; j < column; j++){
if(board[i][j] == 1)
board[i][j] = Math.min(Math.min(board[i-1][j], board[i][j-1]), board[i-1][j-1])+1;
}
}
for(int i = 0; i < row; i++){
for(int j = 0; j < column; j++){
if(answer < board[i][j])
answer = board[i][j];
}
}
answer = answer * answer;
return answer;
}
}
몇주전에 풀었던 거리 기억이 잘 안난다... 나중에 다시풀어보면 설명올리겠다.
'알고리즘 > programmers' 카테고리의 다른 글
[Programmer] [3차] 압축 (0) | 2021.06.23 |
---|---|
[Programmers] [3차] 방금 그곡 (0) | 2021.06.22 |
[Programmers] 방문 길이 (0) | 2021.06.22 |
[Programmers] 점프와 순간 이동 (0) | 2021.06.20 |
[Programmers] [1차] 캐시 (0) | 2021.06.19 |
Comments