def equalStacks(h1, h2, h3):
h1 = h1[::-1]
h2 = h2[::-1]
h3 = h3[::-1]
sum1 = sum(h1)
sum2 = sum(h2)
sum3 = sum(h3)
while True:
min_height = min(sum1, sum2, sum3)
# base case
if min_height == 0:
return 0
if min_height < sum1:
sum1 -= h1.pop()
if min_height < sum2:
sum2 -= h2.pop()
if min_height < sum3:
sum3 -= h3.pop()
if sum1 == sum2 == sum3:
return sum1
주어진 3개의 리스트의 합을 동일하게 만드는 문제
위 그림과 같이 각 리스트의 합이 동일할 때 까지 스택의 pop()으로 제거해주는 문제
위 과정을 해결하기 위해 제시된 코드의 흐름은 다음과 같다.