Skip to content

[Leetcode] 11. Container With Most Water โ€‹

Problem โ€‹

๋ฌธ์ œ ๋งํฌ

problem

์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋‘ ๋ง‰๋Œ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌผ์„ ์ตœ๋Œ€๋กœ ์ฑ„์› ์„๋•Œ ๊ฐ€์žฅ ๋„ˆ๋น„๊ฐ€ ํฐ ๊ฐ’์„ ์ฐพ์•„๋ผ.

Solution โ€‹

  1. ์™ผ์ชฝ ์ธ๋ฑ์Šค์™€ ์˜ค๋ฅธ์ชฝ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋‘ ๊ฐ’์ค‘ ์ž‘์€ ๋†’์ด๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๊ฐ’์„ ๋†’์ด๋กœ ์žก๋Š”๋‹ค
  2. ๋ฌผ์„ ์ฑ„์šด ๋„ˆ๋น„์˜ ์ตœ๊ณ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.
  3. ์ž‘์€ ์‚ฌ์ด์ฆˆ์˜ ๋†’์ด๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ด๋™ํ•œ๋‹ค. 1~2๋ฒˆ ํ–‰๋™์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

JS CODE โ€‹

javascript
/**
 * @param {number[]} heights
 * @return {number}
 */
var maxArea = function(heights) {
  let max = 0, left = 0, right = heights.length-1

  while (left < right) {
    const h = Math.min(heights[left], heights[right])
    const w = right - left

    heights[left] < heights[right] ? left++ : right--
    max = Math.max(max, h * w)
  }

  return max
}