문제 링크: https://leetcode.com/problems/container-with-most-water/
이해하느라 최종적으로 한 두세시간을 쓴 문제..
이 문제에서 특징은 가로(너비..?)는 크면 클 수록 좋고, 높이는 물이 넘치지 않게 하기 위해서 적은 숫자를 택하여야 한다.
class Solution:
def maxArea(self, height: List[int]) -> int:
l, r = 0, len(height)-1
max_area=0
while l<r:
min_height= min(height[l],height[r])
max_area=max(max_area,min_height*(r-l))
if height[l]==min_height:
l+=1
else :
r-=1
return max_area
투포인터 알고리즘을 이용하면 일일이 모든 경우를 구해보지 않고도 더욱 빠르게 구해볼 수 있다.
높이는 두 막대기들 중에서 작은 것을 기준으로 하고, 너비(r-l)와 기준이 되는 막대기(min_height)를 곱한 총 넓이를 이전 값과 비교하여 더 큰 값으로 계속 업데이트(?)해준다.
그리고 최종적으로 가장 큰 넓이의 값을 답으로 한다.
2022.04.01.복습
높이는 낮은거 총 넓이는 가장 큰 거 라는 거 생각해냈음