Programmers

[프로그래머스 / 파이썬 풀이] 카펫

Hoo_Dev 2023. 1. 5. 10:13
def solution(brown, yellow):
    answer = []
    garo = brown // 2 + 1
    
    for i in range(garo, 0, -1):
        for j in range(1, garo+1):
            if (i * 2) + ((j - 2) * 2) == brown and j - 2 > 0:
                if (i-2) * (j-2) == yellow:
                    answer.append(i)
                    answer.append(j)
                    return answer
        
    return answer

갈색의 테두리는 무조건 1줄 임을 감안하여 풀이해야 한다.

갈색의 테두리가 제공 된 갈색의 개수만큼이고, 그 범위는 무조건 두줄 이상이기 때문에 절반으로 나눠 시간을 단축시킨다.

갈색테두리의 가로를 i 세로를 j 로 두고 세로는 0보다 커야 하므로 조건문에 j-2>0 을 추가로 넣는다.

이후 갈색을 제외한 노란색을 검증하는 코드를 넣어준다.