https://programmers.co.kr/learn/courses/30/lessons/42842
"""
1. 아이디어
2. 시간복잡도
"""
def solution(brown, yellow):
answer = []
total = brown + yellow # ab = brown + yellow
for b in range(1, total + 1):
if total % b == 0: # a(가로) * b(세로) = total
a = total // b
if a >= b:
if 2*a + 2*b - 4 == brown:
answer.append(a)
answer.append(b)
break
return answer
위의 공식을 이용하여 풀어야 한다.
참고로 1번은 문제에 나와있는 제한 조건이고, 2번은 ab - (a-2)*(b-2)를 풀어쓴 것이고, 3번은 안쪽 노란색 직사각형의 넓이를 나타낸 것이다.