출처 https://programmers.co.kr/learn/courses/30/lessons/42842?language=python3
조건
1. 중앙은 노란색, 테두리는 1줄의 갈색
노란색의 가로 크기 + 2 = 카펫 width
노란색의 새로 크기 + 2 = 카펫 height2. 카펫의 width >= height
3. yellow 갯수 + brown 갯수 = 카펫의 width * 카펫의 height
def solution(brown, yellow):
for i in range(yellow, 0, -1):
if yellow % i == 0:
if i >= yellow/i:
if (i+2) * (int(yellow/i) +2) == brown+yellow:
return [i+2, int(yellow/i) +2]
for문을 반복하는 횟수를 줄이기 위해 1이 아니라 yellow부터 시작해서 -1씩 해줬다.
만족하는 i에서 바로 해당하는 값을 return 되도록 했다.