Python/CoTe

[programmers] 카펫

joannekim0420 2022. 3. 13. 14:10
728x90

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

 

코딩테스트 연습 - 카펫

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

programmers.co.kr

 

 

막막하다면 우선 예시 입출력으로 그림이나 과정을 정리해보자!

-> 카펫은 테두리가 브라운인 직사각형 또는 정사각형 모양이다. 

-> yellow로 만들 수 있는 카펫 모양을 알아야 전체 카펫의 가로, 세로 길이를 알 수 있다.

-> yellow의 약수를 구하자!

-> yellow의 약수 조합 중에서 테두리 길이를 구했을 때, 주어진 brown과 같으면 return 

def solution(brown, yellow):
    answer = []
    compo = []
    for i in range(1, yellow+1):
        if yellow %i ==0:
            compo.append(i)
    
    if len(compo)%2 == 0: #약수의 개수가 짝수일 때,
        for c in range(len(compo)//2):
            h,w = compo[c], compo[len(compo)-1-c]
            print(h,w)
            print((w+h)*2+4)
            if (w+h)*2+4 == brown:
                return [w+2,h+2]
    else:
        for c in range(len(compo)//2+1):
            h,w = compo[c],compo[len(compo)-1-c]
            print(h,w)
            if (w+h)*2+4 == brown:
                return [w+2,h+2]