## 문제 [Trapping Rain Water - LeetCode](https://leetcode.com/problems/trapping-rain-water) ## 코드 ### Two Pointer 물이 고이기 위해선 -> 양 옆에 자기보다 높은 벽이 있어야 한다. 물의 양은 `min(왼쪽 최대 높이 - 오른쪽 최대 높이) - 현재 높이` 로 결정된다. 각 한 칸 한 칸 마다 고일 수 있는 물의 양을 구한다는 생각으로 문제를 풀면 된다. ```typescript function trap(height: number[]): number { let left = 0, right = height.length - 1; let leftMax = 0, rightMax = 0; let total = 0; while (left < right) { if (height[left] <= height[right]) { // 왼쪽으로 leftMax = Math.max(leftMax, height[left]); total += leftMax - height[left]; left++; } else { rightMax = Math.max(rightMax, height[right]); total += rightMax - height[right]; right--; } } return total; }; ```