프로그래밍/코드리뷰

[코드리뷰]프로그래머스_카펫

donie 2020. 10. 30. 00:25

1. 문제

programmers.co.kr/learn/courses/30/lessons/42842

 

코딩테스트 연습 - 카펫

Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과

programmers.co.kr

2. 소스코드

def solution(brown, red):

    for i in range(1, int(red**(1/2))+1):

        if red % i == 0:

            if 2*(i + red//i) == brown-4:

                return [red//i+2, i+2]

3. 고찰

*문제에서 안쪽 카펫 컬러가 red -> yellow로 변경되었다. 해당 풀이는 그 전에 푼 것이라 red로 명명.

i는 세로, red // i는 가로를 의미한다.

안의 red의 둘레 길이 = 바깥 brown의 개수 - 4

이 둘레에 대한 조건을 만족하면 해당 가로, 세로 길이를 리턴한다.