코딩하는 해맑은 거북이

[Python] 카펫 - 프로그래머스 (완전탐색) 본문

코딩테스트

[Python] 카펫 - 프로그래머스 (완전탐색)

#CJE 2023. 1. 2.
해당 글은 프로그래머스 완전탐색 Level 2 '카펫'을 다룬다.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/42842

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

설명

중앙에 노란색이 칠해져있고, 테두리 1줄만 갈색으로 칠해져있으므로

yellow의 가로에 양옆에 갈색이 있으므로 +2

yellow의 세로에 위아래로 갈색이 있으므로 +2

이 값 두개를 곱하면 전체 카펫의 크기가 나오는 것을 이용하였다.

그리고 카펫의 가로 길이가 세로 길이보다 같거나 크므로 answer[0]에 max처리를 해주고, answer[1]에 min처리를 해주었다.

 

코드

def solution(brown, yellow):
    answer = [0, 0]
    sum = brown + yellow
    for i in range(1, yellow+1):
        if yellow % i == 0:
            y_w = yellow//i
            y_h = i
            if ((y_w+2) * (y_h+2)) == sum:
                answer[0] = max(y_w+2, y_h+2)
                answer[1] = min(y_w+2, y_h+2)
    return answer

     

 

 

Comments