프로그래머스/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