25-1아래 Java 프로그램이 콘솔에 출력하는 값을 적으시오.publ… | 2025년 정보처리기사실기 1회차 기출문제 상세 페이지
19
25-1
아래 Java 프로그램이 콘솔에 출력하는 값을 적으시오.
public class Main {
static int pick(int[] d, int lo, int hi) {
if (lo > hi) return 0;
int m = (lo + hi) / 2;
return d[m] + Math.max(pick(d, lo, m - 1), pick(d, m + 1, hi));
}
public static void main(String[] args) {
int[] nums = {4, 9, 2, 11, 6, 7};
System.out.println(pick(nums, 0, nums.length - 1));
}
}해설
19
[해설]
pick은 구간의 가운데 원소를 더하고, 왼쪽·오른쪽 절반 중 결과가 큰 쪽을 골라 재귀한다. 구간이 비면(lo > hi) 0이다.
- pick(0,5): m=2 → 2 + max(pick(0,1), pick(3,5))
- pick(0,1): m=0 → 4 + max(0, pick(1,1)=9) = 13
- pick(3,5): m=4 → 6 + max(pick(3,3)=11, pick(5,5)=7) = 17
따라서 2 + max(13, 17) = 2 + 17 = 19다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.