

내가 작성한 코드
import java.util.*;
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
int total = brown + yellow;
// 제곱근 이하의 약수만 확인
for (int i = 1; i <= Math.sqrt(total); i++) {
if (total % i == 0) {
int width = total / i;
int height = i;
// 내부 노란색 타일 개수 계산 -> -2하는 이유 -> 테두리 타일 제외
if ((width - 2) * (height - 2) == yellow) {
answer[0] = width;
answer[1] = height;
break;
}
}
}
return answer;
}
}
다른 사람의 코드
class Solution {
public int[] solution(int brown, int yellow) {
int a = (brown + 4) / 2; // 가로 + 세로
int b = yellow + brown; // 총 타일의 수
// 근의 공식 활용
int[] answer = { (int) (a + Math.sqrt(a * a - 4 * b)) / 2, (int) (a - Math.sqrt(a * a - 4 * b)) / 2 };
return answer;
}
}
Share article