접근법
해결법이 생각이 나지 않아 솔루션을 보고서야 이해했다.
투포인터 접근이다.
water container의 너비는 가로 * 세로의 사각형이다.
i = 0, j = height - 1로 두게되고 투포인터를 서서히 좁힐때, 사각형의 너비가 첫 경우보다 커지는 경우는 가로길이는 최대임으로 세로길이가 증가했을 때 밖에 없다./** * @param {number[]} height * @return {number} */ var maxArea = function(height) { let res = 0; let i = 0; let j = height.length - 1; while (i < j) { res = Math.max(res, Math.min(height[i], height[j]) * (j - i)); height[i] < height[j] ? i++ : j--; } return res; };
풀이법을 보고 왜 이걸 못풀었지 했던 문제다.
열심히 해야겠다.
다양한 사고가 필요하다는 생각이 든다.