문제에서 카펫의 가로길이>=세로길이라고 나와있으니 yellow의 약수와 그 때의 몫을 큰 수 순서대로 넣어준다
가로길이=약수, 세로길이=몫이 되도록 yellow를 펼쳐놓고 그 가장자리에 (row+col)x2+4개수만큼 brown이 놓여져있으면, [col+2, row+2] 값이 카펫의 크기가 된다
from math import sqrt
#약수 구하는 함수
def divide(n):
result = []
for i in range(1, int(sqrt(n))+1):
if n%i==0:
result.append((i,n//i))
result.sort(reverse = True)
return result
def solution(brown, yellow):
answer = []
result = divide(yellow)
for row, col in result:
if (row+col)*2+4 == brown:
answer = [col+2, row+2]
break
return answer