Security ★ Development/알고리즘
배열 3 matti_block
Duskystar
2015. 1. 29. 01:54
반응형
문제는 더블릿 5 배열에 있는 matti_block입니다.
문제 사이트 주소입니다.
http://183.106.113.109/30stair/matti_block/matti_block.php?pname=matti_block
블록의 정면, 측면 사진이 있을 때 이러한 모양을 만들 수 있는 블록의 최소 수와 최대 수를 구하는 문제입니다.
최소수는 다음과 같이 구해질 수 있습니다.
입력예를 보면
4
2 0 3 1
1 1 2 3
인데 높이 1짜리 인것이 정면에서 봤을 때 2개, 측면에서 봤을 때 1개 있습니다.
그럼 최소한 높이 1짜리는 2개가 필요하단 것을 알 수 있습니다.
높이 2는 각 한 개씩 있고 3도 한 개씩 있습니다.
1짜리 2개, 2짜리 1개, 3짜리 1개. 각각 필요한 블록의 개수를 곱해서 다 더해주면 됩니다.
최대수는 밑에서부터 필요한 블록의 수를 쌓아 나갑니다.
먼저 측면을 보면 높이 1짜리는 4 자리 모두 차지하고 있으므로 4.
정면에선 2번째 줄을 빼고 모두 1로 채울 수 있습니다 3.
4*3=12
높이 1짜리 블록을 총 12개 채울 수 있습니다.
높이 2짜리는 정면에서 2개, 측면에서 2개 보이므로 2*2=4개를 놓을 수 있습니다.
3짜리는 1개입니다.
모두 합하면 17로 원하는 답이라는 것을 알 수 있습니다.