brown, yellow
Leo가 본 카펫에서 갈색 격자의 수, 노란 격자의 수 | 10,2 | brown은 8 이상 5,000 이하인 자연수, yellow는 1 이상 2,000,000 이하인 자연수, 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 김
카펫의 가로, 세로 크기를 순서대로 배열에 담아 return
가로를 a, 세로를 b라고 할 때, a*b = brown + yellow와 같기 때문에, 2부터 ab/2까지의 수를 순회하며 나눠지고 조건(2a+2b-4 = brown 또는 ab-2a-2b+4 = yellow)중 하나를 만족하면 가능한 크기이므로 이를 return
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
int ab = brown + yellow;
for(int i=2; i<ab/2; i++){
int test_b = i;
if(ab%test_b!=0)
continue;
int test_a = ab/test_b;
if(2*test_a + 2*test_b - 4 == brown){
answer = new int[]{test_a, test_b};
break;
}
}
return answer;
}
}