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