• + 0 comments

    C# Simple Solution

    public static int equalStacks(List<int> h1, List<int> h2, List<int> h3)
        {
            Stack<int> stack1 = new Stack<int>(h1);
            Stack<int> stack2 = new Stack<int>(h2);
            Stack<int> stack3 = new Stack<int>(h3);
            
            // Counter
            int c1 = 0;
            int c2 = 0;
            int c3 = 0;
            
            // Sum of each stack
            int sum1 = stack1.Sum();
            int sum2 = stack2.Sum();
            int sum3 = stack3.Sum();
            
            while(sum1 != sum2 || sum2 != sum3 || sum3 != sum1){
                
                if (sum1 >= sum2 && sum1 >= sum3) {
                    sum1 -= h1[c1];
                    c1++;
                }
                
                else if (sum2 >= sum1 && sum2 >= sum3) {
                    sum2 -= h2[c2];
                    c2++;
                }
                else if (sum3 >= sum1 && sum3 >= sum2) {
                    sum3 -= h3[c3];
                    c3++;
                }
            }
            
            return sum1;
        }