[JAVA] 이전 요소들의 합보다 큰가?

문제: 수를 요소로 갖는 배열을 입력받아 각 요소들이 그 이전의 요소들의 합보다 큰지 여부를 리턴

public class Main {
    public static boolean superIncreasing(int[] arr) {
        if(arr.length == 0) return false;
        int sum = arr[0];

        for (int i = 1; i < arr.length; i++) {
            if (arr[i] <= sum) {
                return false;
            }
            sum = sum + arr[i];
        }
        return true;
    }
}

흐름

  1. 빈배열일 때는 false를 받음
  2. sum을 선언하면서 arr[0]이라고 바로 받음
  3. for문안에 if문을 사용해 arr[i]가 sum보다 작은 경우는 바로 false를 반환
  4. 하지만 크다면 sum에 arr[i]를 계속 더해줌
  5. 따라서 for문이 끝나고 나서 true를 받으면 됨