처음에 어떤 방식으로 시도해야할지 방향을 잡지 못했는데 인터넷에서 찾아보니 아래와 같은 방식으로 수식으로 접근하면 된다는 것을 알았다.
위 두개의 식으로 문제 해결
def solution(brown, yellow):
answer = []
a = 3
flag = True
while flag:
for i in range(a+1):
b = i
if a + b == (brown + 4) // 2 and a*b == brown + yellow:
answer = [a, b]
flag = False
a += 1
return answer
카펫의 최소 형태는 3*3이므로 a=3으로 했으며
항상 가로가 더 길거나 같기 때문에 b를 구하기 위한 for문의 range는 a+1까지로 했다.