ContainerWithMostWater
Published at 2021-12-06
class Solution:
def maxArea(self, height: List[int]) -> int:
# 물 양은 높이(두쪽중 작은 값) X 가로(인덱스의 차이) 하면 됨
def calcWater(leftIdx, rightIdx):
left, right = height[leftIdx], height[rightIdx]
return min(left, right) * (rightIdx - leftIdx)
leftIdx, rightIdx = 0, len(height) - 1 # 맨처음에 양 끝에서 시작
water = 0
while leftIdx < rightIdx:
water = max(water, calcWater(leftIdx, rightIdx))
# right값이 더 크다면 걘 그대로 놔두고 left가 움직여야 더 큰 값이 될거라고 예상되니까.
if height[leftIdx] < height[rightIdx]:
leftIdx += 1
else:
rightIdx -= 1
return water