algorithm | February 26, 2020
숫자의 배열인 height는 y축의 값(높이 값)으로 받는다.
그래프에 물을 담는다고 생각하고, 물을 담을 수 있는 가장 넓은 면적의 값을 반환하라.
def get_max_area(height):
largest_area = 0
for index_x1 in range(len(height)-1, -1, -1):
for index_x2 in range(index_x1):
if height[index_x1] < height[index_x2]:
area = (index_x1 - index_x2) * height[index_x1]
else:
area = (index_x1 - index_x2) * height[index_x2]
largest_area = max(largest_area, area)
return largest_area
이중 for문을 돌려야 할 때
) while문을 고려해야겠다.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