def solution(brown, yellow):
# 가로 길이: x, 세로 길이: y
# x * y = brown + yellow
# (x-2) * (y-2) = yellow
x = ((4 + brown) + ((4 + brown) ** 2 - 16 * (brown + yellow)) ** 0.5) // 4
y = (brown + yellow) // x
return [ int(max(x, y)), int(min(x, y)) ]
x * y
는 전체 카펫의 갯수와 같다.x-2
, 세로는 y-2
이며 이를 곱하면 노란색 카펫의 갯수와 같다.x * y = brown + yellow
와 (x-2) * (y-2) = yellow
으로 x, y 값을 구한다.