Menu
CoddyTech

Container With Most Water

음이 아닌 정수 목록 height가 주어집니다. i번째 선은 위치 i에 서 있는 높이 height[i]의 수직 벽입니다. 임의의 두 선은 바닥과 함께 용기를 이루며, 이 용기에 담을 수 있는 물의 양은 두 선 중 더 낮은 선의 높이에 두 선 사이의 거리를 곱한 값입니다. 다른 선들은 방해가 되지 않습니다. 선 한 쌍이 담을 수 있는 최대 물의 양을 반환하세요.

함수

maxArea(height: integer-array) → integer
heightinteger-array
위치 0, 1, 2 등의 줄 높이
반환값integer
두 줄에 담을 수 있는 최대 물의 양

제약 조건

  • 2 ≤ height.length ≤ 104
  • 0 ≤ height[i] ≤ 104
  • 정답은 최대 108이므로 32비트 정수에 들어갑니다.

예제

입력
height = [3, 7, 2, 5, 4, 7, 3, 6]
출력
36
설명
위치 1과 7에 있는 높이 7과 6의 선들은 간격이 6이며, 6 × 6 = 36을 담습니다. 가장 높은 두 선인 위치 1과 5의 7은 7 × 4 = 28만 담습니다.
challenge icon

후속 질문

여기서는 두 선 사이의 선들은 무시됩니다. 모든 선이 단단한 막대라면, 그 사이에 물이 얼마나 고일까요? 이것도 O(n)으로 계산할 수 있나요?

코드 초기화
def maxArea(height):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

인자

height = [3, 7, 2, 5, 4, 7, 3, 6]

예상 출력

36