equal stack

문제

코드

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()으로 제거해주는 문제
위 과정을 해결하기 위해 제시된 코드의 흐름은 다음과 같다.

출처

https://www.hackerrank.com/challenges/equal-stacks/problem

좋은 웹페이지 즐겨찾기