๋ฌธ์
ํ์ด ๊ณผ์
๋ ๋ง๋๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ๋ง์ ๋ฌผ์ ๋ด์ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๋ฌธ์ ์
๋๋ค. ์์ ํ์
์ผ๋ก ์ ๊ทผํ ๊ฒฝ์ฐ O(N^2)
์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ง๋ง ํฌ ํฌ์ธํฐ
๋ฅผ ์ฌ์ฉํ๋ฉด O(N)
์ ๊ฐ๋ฅํฉ๋๋ค.
๋ ๋ง๋๊ฐ ๋ค์๊ณผ ๊ฐ์ด ์กด์ฌํ๋ค๊ณ ํ๊ฒ ์ต๋๋ค.
ํธ์์ 2, 1, 4
ํฌ๊ธฐ์ ๋ง๋๋ฅผ ๊ฐ๊ฐ ๋ค๋ฅธ ์์น์ ๊ทธ๋ ธ์ง๋ง
์ฌ์ค์ ๊ฐ์ฅ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ๋ง๋ ์ค๊ฐ์ ์ด๋ ํน์ ์์น X
์ ์์นํ ์ ์๋ ๋ง๋์ 3 ์ข
๋ฅ๋ฅผ ๋ํ๋ธ ๊ฒ์
๋๋ค.
์์ ๊ฐ์ด ๊ฐ์ฅ ์ผ์ชฝ์ ์์นํ ๋ง๋๋ฅผ L
๊ทธ ๋ฐ๋๋ฅผ R
์ด๋ผ๊ณ ํ์ ๋ ์ด๋ ํฌ์ธํฐ๋ฅผ ์ฎ๊ฒจ์ผ ์ต๋ ์ ์ฌ ์ปจํ
์ด๋๋ฅผ ๊ตฌํ ์ ์์๊น์?
๋ง์ฝ R
์ ํฌ์ธํฐ๋ฅผ ์ผ์ชฝ์ผ๋ก ์ฎ๊ธธ ๊ฒฝ์ฐ 2, 1, 4
๋ง๋ ๋ชจ๋ R
๋ณด๋ค ์๊ธฐ ๋๋ฌธ์ ์ ๋ ๋ ํฐ ์ปจํ
์ด๋๋ฅผ ๊ตฌํ ์ ์์ต๋๋ค.
์ด๋ ๊ฐ ์ปจํ
์ด๋์ ๋ถํผ๊ฐ ๋ ๋ง๋์ค ๋ ์์ ๋ง๋๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์ด๊ฐ ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ด์ฃ .
๋์ ์ L
์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฎ๊ธธ ๊ฒฝ์ฐ L
๋ณด๋ค ํฐ ๋ง๋๊ธฐ๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ ๋ ํฐ ์ปจํ
์ด๋๋ฅผ ๊ตฌํ ๊ฐ๋ฅ์ฑ
์ด ์กด์ฌํฉ๋๋ค.
๋ฐ๋ผ์ ํ์ฌ ๋ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฅดํค๋ ๋ง๋ ์ค ๋ ๋ฎ์ ๋์ด๋ฅผ ๊ฐ์ง๋ ๋ง๋์ชฝ์ ํฌ์ธํฐ๋ฅผ ์์ชฝ์ผ๋ก ์ฎ๊ฒจ์ฃผ๋ฉด์ ํ์์ ์ํํฉ๋๋ค.
์ฝ๋
/**
* @param {number[]} height
* @return {number}
*/
var maxArea = function (height) {
let answer = 0;
let left = 0,
right = height.length - 1;
while (left < right) {
const size = Math.min(height[left], height[right]) * (right - left);
answer = Math.max(answer, size);
if (height[left] < height[right]) left++;
else right--;
}
return answer;
};
'๐ algorithm > leetcode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
LeetCode 560 - Subarray Sum Equals K (Medium) (2) | 2021.03.04 |
---|---|
LeetCode 752 - Open the Lock (Medium) (0) | 2021.03.04 |
LeetCode 763 - Partition Labels (Medium) (0) | 2021.03.04 |
LeetCode 48 - Rotate Image (Medium) (0) | 2021.03.04 |
LeetCode 236 - Lowest Common Ancestor of a Binary Tree (Medium) (0) | 2021.03.04 |
๐ฌ ๋๊ธ