인자인 height는 숫자로 이루어진 배열입니다.그래프로 생각한다면 y축의 값이고, 높이 값을 갖고 있습니다. 아래의 그래프라면 height 배열은 [1, 8, 6, 2, 5, 4, 8, 3, 7] 입니다.
저 그래프에 물을 담는다고 생각하고, 물을 담을 수 있는 가장 넓은 면적의 값을 반환해주세요.
def get_max_area(height):
a = [0]
for i in range(len(height)):
for j in range(i + 1, len(height)):
if height[i] > height[j]:
if a[0] <= height[j] * (j - i):
a[0] = height[j] * (j - i)
else:
if a[0] < height[i] * (j - i):
a[0] = height[i] * (j - i)
return a[0]
print(get_max_area([1, 1]))
def get_max_area(height):
l = 0
r = len(height) -1
area = 0
while l < r:
area = max(area, min(height[l],height[r]) * (r - l))
if height[l] < height[r]:
l += 1
else:
r -= 1
return area
Two Pointers Algorithm