Python/알고리즘

완전탐색 Level 2 카펫 - python (프로그래머스)

구름용 2023. 6. 23. 16:59

소스 코드

def solution(brown, yellow):
    
    total_size = brown + yellow
    
    for i in range(1,total_size + 1):
        if total_size % i == 0:
            width = i
            height = total_size // i
            if width >= height and width == yellow // (height - 2) + 2:
                return [width, height]

풀이

해당 문제는 모든 카펫 모양을 구해보면서 문제 설명에서 언급한 조건에 맞는 카펫만 찾으면 된다. 가운데에 노란색 카펫이 있고 그 주위를 갈색 카펫으로 빠짐없이 덮기 위해서는 높이가 가로 길이보다 더 커서는 안되며 yellow의 층이 높아짐에 따라 width 는 width == yellow // (height - 2) + 2 같은 패턴을 따라야 한다는 것을 발견하였다.