
[BOJ] 18111: 마인크래프트 (JAVA)
·
Algorithm/완전탐색
📄 문제https://www.acmicpc.net/problem/18111 📝 풀이땅을 고르게 만들기 위해서는 먼저 목표로 하는 땅의 높이를 정해야 한다. 이를 위해 땅의 최소 높이와 최대 높이를 구해야 한다. 그 후, 목표 높이를 "최소 높이 ~ 최대 높이" 사이 값으로 지정하여 최적의 높이를 찾아 시간을 계산하면 된다. 땅의 최대 높이는 256이므로, 최소 높이에서 최대 높이까지 모든 경우를 확인해도 된다. 또한, 최대 높이가 크지 않으므로 땅의 정보를 2차원 배열 대신 1차원 배열에 저장할 수 있다. (해당 높이의 땅이 몇 개인지 저장하는 1차원 배열) 목표 높이를 정했으면 깎아야 할 블록의 개수와 쌓아야 할 블록의 개수를 계산한다. 깎아야 하는 블록의 개수: 해당 높이의 땅 개수 * (현재..