https://school.programmers.co.kr/learn/courses/30/lessons/42842
전체 격자 수 - 테두리가 노란색 격자의 수와 일치해야 함class Solution {
public int[] solution(int brown, int yellow) {
// 답을 저장할 배열, answer[0]은 가로(width), answer[1]은 세로(height)
int[] answer = new int[2];
// i는 카펫의 세로 길이, 최소 3부터 시작 (최소 크기의 카펫은 3x3)
for(int i = 3; i < brown + yellow; i++) {
// 가로 길이 width는 전체 타일 수(brown + yellow)를 i로 나눈 몫
int width = (brown + yellow) / i;
// 가로 길이는 세로 길이보다 크거나 같아야 하므로 이 조건을 확인
if (width >= i) {
// 테두리를 제외한 내부 영역의 크기가 노란색 타일 수와 같은지 확인
// 즉, 카펫의 테두리(갈색 타일)를 제외한 내부가 정확히 노란색 타일로 채워졌는지 확인
if ((i - 2) * (width - 2) == yellow) {
// 조건을 만족하면 answer 배열에 가로와 세로 값을 저장
answer[0] = width; // 가로
answer[1] = i; // 세로
break;
}
}
}
return answer;
}
}