코딩코딩

[프로그래머스] level2 카펫 - 파이썬(Python) 풀이

Jerry Jun 2020. 9. 13. 17:10
728x90

문제

 

코딩테스트 연습 - 카펫

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

programmers.co.kr

 

 

코드

# 2,3,8,9,10 실패
answer = []
for i in range(1, yellow+1):
    if 2 * (int(yellow / i) + 2) + (i * 2) == brown:
        answer = [int(yellow/i+2) ,i+2]
        break
answer
def solution(brown, yellow):
    answer = []
    for i in range(1, yellow+1):
        if yellow / i == int(yellow / i):
            if 2 * (int(yellow / i) + 2) + (i * 2) == brown:
                answer = [int(yellow/i+2) ,i+2]
                break
    return answer

 

코드 풀이

level2 치고는 쉬운 문제였다.

여기서 중요하게 봐야 할 것은 카펫의 가로 길이 >= 카펫의 세로 길이 와 yellow / i 가 실수가 되지 않아야 되는 것 뿐! 만약 yellow 가 24 라면 1 * 24, 2* 12, 3* 8 ... 등으로 크기가 바뀔 것이다.

 

i 는 그 중 1,2,3... 을 뜻하고 brown 의 개수는 (yellow의 가로 + 2) * 2 + yellow의 세로 * 2 일 테니 비교를 해주면 끝.

 

correctimage
programmersimage

300x250