글 작성자: 택시 운전사
반응형
--- ---

🎨 카펫 문제 풀어보기


😃 나의 코드

def solution(brown, red):
    for a in range(1, int(red**0.5)+1):
        if not red % a:
            b = red // a
            if 2*a + 2*b + 4 == brown:
                return [b+2, a+2]

완전 탐색(exhaustive search)를 이용하여 푸는 문제입니다. 빨간색의 가로를 A, 세로를 B라고 했을 때, 주어진 값 redA*B가 되고 brown2(A+B)+4가 됩니다. 이제 A와 B에 찾는 과정입니다. red를 두 자연수 곱의 쌍으로 봤을 때, 중복된 곱의 쌍을 없엔다면 A의 범위는 red의 제곱근의 내림값보다 작거나 같을 것입니다. 이를 통해 얻은 자연수 A와 B의 쌍이 brown에 값에도 맞는 지 확인하면 문제는 마무리됩니다.

Written with StackEdit.


반응형