문제: 수를 요소로 갖는 배열을 입력받아 각 요소들이 그 이전의 요소들의 합보다 큰지 여부를 리턴
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;
}
}
흐름
- 빈배열일 때는 false를 받음
- sum을 선언하면서 arr[0]이라고 바로 받음
- for문안에 if문을 사용해 arr[i]가 sum보다 작은 경우는 바로 false를 반환
- 하지만 크다면 sum에 arr[i]를 계속 더해줌
- 따라서 for문이 끝나고 나서 true를 받으면 됨
PREVIOUS[JAVA] 백준 2446번 별찍기 - 9