์๋ฐ ์ฝ๋
class Solution {
public int maxArea(int[] height) {
int left = 0;
int right = height.length-1;
int ans = -1;
while(left<right){
int w = right - left;
int heightL = height[left];
int heightR = height[right];
int h = Math.min(heightL,heightR);
ans = Math.max(ans,w*h);
if (heightL<=heightR){
left++;
}else{
right--;
}
}
return ans;
}
}
ํ์ด์ฌ ์ฝ๋
class Solution(object):
def maxArea(self, height):
left = 0
right = len(height)-1
ans = -1
while left<right:
w = right - left
heightL = height[left]
heightR = height[right]
h = min(heightL,heightR)
ans = max(ans,h*w)
if heightL<=heightR:
left+=1
else:
right-=1
return ans
์์ธ๋ก ์์ฒญ ์ฝ๊ฒ ํ๋ฆฐ ๋ฌธ์
3Sum ๋ฌธ์ ๋ Search in Rotated Sorted Array ๋ฌธ์ ๊ฐ์ ์ ํ์ ๋ง์ด ํ์ด๋ณด๋ ํ์ด๊ฐ ๋ฐ๋ก ๋ ์ฌ๋๋ค.
๋ ๊ฐ์ ํฌ์ธํฐ๋ฅผ ์ง์ ํด์ ํธ๋ ๋ฌธ์ ๊ฐ ๋ง์ ๊ฒ ๊ฐ๋ค.
left ๋ 0์์ ์์ํ๊ณ right๋ ์ ค ์ค๋ฅธ์ชฝ์์ ์์ํ๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ฌ ์์น์์ ๋์ด๋ฅผ ๊ตฌํ๋ค ans์ ์ ๋ฐ์ดํธ๋ฅผ ํด์ฃผ๊ณ left์ right ์ค ๋์ด๊ฐ ๋ฎ์ ๊ธฐ๋ฅ์ ๊ตฌํ ๋ค,
๋ฎ์์ชฝ์ ํ์นธ์ฉ ์ด๋์์ผ์ฃผ๊ณ ๋์ด๋ฅผ ๋ ์ ๋ฐ์ดํธํด์ฃผ๋ฉด ๋๋ค.
left<right ๋ฅผ ๋ง์กฑํ ๋๊น์ง ๋ฐ๋ณตํ๋ฉด ๋๋ค.