[수업]정육면체
Intro..
이 문제는 DP 관련 문제이다.
DP 관련해서 정리해둔 게시글이 있기 때문에 참고할 것.
문제
%EC%A0%95%EC%9C%A1%EB%A9%B4%EC%B2%B4/5a9523e4-7b7a-4468-b1dd-b63f2ce4354a.png)
%EC%A0%95%EC%9C%A1%EB%A9%B4%EC%B2%B4/fdb0dd8c-4202-486f-8d0f-77d653e2240e.png)
풀이
직육면체에서 최소로 절단해서 정육면체를 만든 경우는 
최소로 절단한만큼 비례해서 정육면체도 최소로 생성될거임. 
즉, 최소로 생성된 정육면체 개수를 구해가면 됨.
우선, a=b는 return 1
또한, 가로 세로를 항상 가로<=세로로 보고 품(세로가 더 커도 가로로 보면 됨) => 7x2x8이면 2x7x8로 배치후 품.
a를 k로 자르면 k와 a-k로 나뉨 k는 1<=k<=a/2 : 그 이상은 할 필요 없음. 중복이니까!!
최종 핵심 : min(c(kxb) + c((a-k)xb)) min(c(axk) + c(ax(b-k))) => c(a,b)
아래는 DP가 채워져 나가는 배열 모습(최소 생성된 정육면체 개수들..)
a,b 1 2 3 4
1    1 2 3 4… 
2       1 3 2 
3 
4
=> 마지막 인덱스가 정답이 되는것
댓글남기기