연습장

카펫 본문

프로그래머스/2단계

카펫

js0616 2024. 4. 30. 22:20

 

b = 10 , y = 2 

 

결국 전체 합하면 12개 이고 이는 4*3 ( 가로가 더 길다)  로 볼 수 있음

 

8 , 1 => 8+1 = 3*3 

24,24 => 24+24 => 8*6  ... ? 

 


 

반례 

18,6 / 16,8 모두 합이 24 가 되며 이는 6*4 , 8*3 등 다양한 경우가 나올 수 있다. 

 

 

 

 

 

 

따라서 노란색의 배치를 먼저 고려하고  => 4*2

거기서 상하좌우가 1씩 확장된 크기 => (4+1+1)*(2+1+1) 가 전체 갯수  16+8 과 같은지 확인 

 

 

def solution(brown, yellow):
    answer = []
   
    for i in range(1,yellow+1):
        # yellow의 크기 확인
        if yellow % i == 0 :
            # 전체 갯수 확인
            if (yellow//i+2)*(i+2) == brown + yellow:
                answer.append(yellow//i+2)
                answer.append(i+2)
                break
    return answer

 

'프로그래머스 > 2단계' 카테고리의 다른 글

점프와 순간이동  (0) 2024.05.20
짝지어 제거하기  (0) 2024.05.19
피보나치 수  (0) 2024.04.30
다음 큰 숫자  (0) 2024.04.30
숫자의 표현  (0) 2024.04.30