Contents
내가 작성한 코드

내가 작성한 코드
import java.util.*;
class Solution {
public int solution(int[] mats, String[][] park) {
int n = park.length; // 행의 개수
int m = park[0].length; // 열의 개수
// 큰 돗자리부터 시도
Arrays.sort(mats);
for (int i = mats.length - 1; i >= 0; i--) {
int size = mats[i];
if (canPlace(size, park, n, m)) {
return size;
}
}
return -1;
}
// size x size 크기 돗자리를 깔 수 있는지 확인
private boolean canPlace(int size, String[][] park, int n, int m) {
for (int i = 0; i <= n - size; i++) {
for (int j = 0; j <= m - size; j++) {
if (isEmptyArea(park, i, j, size)) {
return true;
}
}
}
return false;
}
// (i, j)를 시작으로 size x size 구역이 모두 "-1"인지 확인
private boolean isEmptyArea(String[][] park, int row, int col, int size) {
for (int i = row; i < row + size; i++) {
for (int j = col; j < col + size; j++) {
if (!park[i][j].equals("-1")) {
return false;
}
}
}
return true;
}
}
Share article