날짜: 2022년 1월 31일 오후 5:51

코드

Algorithm/42842.py at main · Junroot/Algorithm

풀이

일단 내가 푼 방법은 문제에서 의도한 방법은 아닌 것으로 보인다.

brown + yellow = (가로) * (세로)

yellow = ((가로) - 2) * ((세로) - 2)

라는 식을 적어 놓은 뒤 이차방적식으로 문제를 풀면 O(1)으로 문제 풀이가 가능하다.

문제 의도인 완전 탐색으로 문제를 풀어도, 위 두 개의 식을 이용할 수 있을 것으로 보인다.

def solution(brown, yellow):
    sum = brown + yellow
    for h in range(1, brown + yellow + 1):
        if sum % h == 0:
            w = sum // h
            if yellow == (w - 2) * (h - 2):
                return [w, h]