[HackerRank] JAVA - Equal Stacks

OOSEDUS·2025년 3월 11일
0

해커랭크

목록 보기
13/13
post-thumbnail
class Result {

    public static int equalStacks(List<Integer> h1, List<Integer> h2, List<Integer> h3) {
        // 스택 높이 합 계산
        int sum1 = h1.stream().mapToInt(Integer::intValue).sum();
        int sum2 = h2.stream().mapToInt(Integer::intValue).sum();
        int sum3 = h3.stream().mapToInt(Integer::intValue).sum();

        // 각 스택을 처리할 인덱스
        int i1 = 0, i2 = 0, i3 = 0;

        // 모든 스택이 같은 높이가 될 때까지 반복
        while (true) {
            // 세 스택의 높이가 같으면 반환
            if (sum1 == sum2 && sum2 == sum3) return sum1;

            // 가장 높은 스택에서 원소 제거
            if (sum1 >= sum2 && sum1 >= sum3) {
                sum1 -= h1.get(i1++);
            } else if (sum2 >= sum1 && sum2 >= sum3) {
                sum2 -= h2.get(i2++);
            } else {
                sum3 -= h3.get(i3++);
            }
        }
    }
}
profile
성장 가능성 만땅 개발블로그

0개의 댓글