배열 3 matti_block
2015. 1. 29. 01:54ㆍSecurity ★ Development/알고리즘
반응형
문제는 더블릿 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로 원하는 답이라는 것을 알 수 있습니다.
'Security ★ Development > 알고리즘' 카테고리의 다른 글
다차원배열 4 plibrary (0) | 2015.02.10 |
---|---|
dynamic programming 7 subset (0) | 2015.02.03 |
퀵 정렬, 이진검색, parametric search 1 aggressive (0) | 2015.01.27 |
queue(bfs) 2 horse_knight (0) | 2015.01.24 |
배열 2 dwarf (0) | 2015.01.23 |