# 수학적 접근
def solution(brown, yellow):
total = brown + yellow
for i in range(1, int(yellow**0.5) + 1):
if yellow % i == 0:
width = yellow // i + 2
height = i + 2
if width * height == total:
return [width, height]
return []
이차방정식
import math
def solution(brown, yellow):
# x를 가로, y를 세로라고 할 때
# xy = brown + yellow
# 2x + 2y - 4 = brown
# 위 두 식을 연립하여 이차방정식을 만들 수 있습니다.
w = ((brown + 4) / 2 + math.sqrt(((brown + 4) / 2) ** 2 - 4 * (brown + yellow))) / 2
h = (brown + yellow) / w
return [int(w), int(h)]
문제 출처
문제 유형
배운점 (Optional)
이차방정식
궁금한점 (Optional)