[JS/백준]{구현}(14719) 빗물
2022년 09월 26일
백준 문제 링크
문제 설명
의외로 간단하게 풀수가 있는데 현재 블록에서 자신을 포함한 왼쪽과 오른쪽에서 가장 높은 블록들중 더
작은 블록 높이가 현재 블록에 채워질 물의 높이가 된다. 처음에는 나도 이게 되나? 싶었지만 의외로 잘 된다.
풀이 코드
const line = require("fs").readFileSync("./input.txt", "utf8");
const inputData = line.trim().split("\n");
const [h, w] = inputData[0].split(" ").map((val) => +val);
const rain = inputData[1].split(" ").map((val) => +val);
let water = 0;
for (let i = 0; i < rain.length; i++) {
const maxLen = Math.max(...rain.slice(0, i + 1));
const minLen = Math.max(...rain.slice(i));
const minBlock = Math.min(maxLen, minLen);
water += minBlock - rain[i];
}
console.log(water);