기출문제/정보처리기사
2021년 3회 정보처리기사 기출문제 73번
엉클지니
2025. 3. 19. 11:01
73. 다음 JAVA 프로그램이 실행되었을 때의 결과를 쓰시오.
① 13 ② 21
❸ 34 ④ 55
🔍 문제 분석
다음은 주어진 Java 코드입니다.
public class ovr {
public static void main(String[] arge) {
int arr[];
int i = 0;
arr = new int[10];
arr[0] = 0;
arr[1] = 1;
while (i < 8) {
arr[i + 2] = arr[i + 1] + arr[i];
i++;
}
System.out.println(arr[9]);
}
}
이제 하나씩 분석해 보겠습니다.
🛠 코드 실행 과정
- 배열 선언 및 초기화
- arr이라는 정수형 배열을 선언하고 크기를 10으로 설정합니다.
- arr[0] = 0, arr[1] = 1로 초기화합니다.
- int arr[]; arr = new int[10]; // 크기가 10인 배열 생성 arr[0] = 0; arr[1] = 1;
- while 문 실행
- i = 0부터 시작하여 i < 8 동안 반복됩니다.
- arr[i + 2] = arr[i + 1] + arr[i] 연산을 통해 배열을 채워갑니다.
- while (i < 8) { arr[i + 2] = arr[i + 1] + arr[i]; i++; }
🔢 배열 값 변화 과정
반복문을 실행하면서 배열 값이 어떻게 변하는지 살펴보겠습니다.
i 값 arr[i] 연산 (arr[i+2] = arr[i+1] + arr[i]) 결과 (arr[i+2])
0 | 0 | arr[2] = arr[1] + arr[0] = 1 + 0 | 1 |
1 | 1 | arr[3] = arr[2] + arr[1] = 1 + 1 | 2 |
2 | 1 | arr[4] = arr[3] + arr[2] = 2 + 1 | 3 |
3 | 2 | arr[5] = arr[4] + arr[3] = 3 + 2 | 5 |
4 | 3 | arr[6] = arr[5] + arr[4] = 5 + 3 | 8 |
5 | 5 | arr[7] = arr[6] + arr[5] = 8 + 5 | 13 |
6 | 8 | arr[8] = arr[7] + arr[6] = 13 + 8 | 21 |
7 | 13 | arr[9] = arr[8] + arr[7] = 21 + 13 | 34 |
즉, arr[9]의 값은 34가 됩니다.
📌 결론
출력되는 값은 34이므로 정답은 ③ 34입니다. 🎯
📚 추가 설명 (피보나치 수열)
이 문제는 **피보나치 수열(Fibonacci Sequence)**의 개념을 이용한 문제입니다.
✅ 피보나치 수열이란?
피보나치 수열은 다음과 같은 규칙을 따르는 수열입니다.
F(0) = 0
F(1) = 1
F(n) = F(n-1) + F(n-2) (n ≥ 2)
즉, 앞의 두 숫자를 더해서 다음 숫자를 만드는 방식입니다.
예시:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
이 문제에서도 arr[0] = 0, arr[1] = 1을 초기값으로 설정하고,
이후에 arr[i+2] = arr[i+1] + arr[i]를 수행하면서 피보나치 수열을 구현한 것입니다.
🎯 유사 문제 예시
다음과 같은 변형된 문제도 나올 수 있습니다.
예제 1: 배열 크기가 더 클 경우
int arr[] = new int[12];
arr[0] = 0;
arr[1] = 1;
for (int i = 0; i < 10; i++) {
arr[i + 2] = arr[i + 1] + arr[i];
}
System.out.println(arr[11]);
이 경우, arr[11]의 값은 89가 출력됩니다.
📝 정리
- 배열을 선언하고 초기값을 설정합니다.
- arr[0] = 0, arr[1] = 1
- 반복문을 이용해 배열을 채웁니다.
- arr[i + 2] = arr[i + 1] + arr[i] 연산을 수행하여 피보나치 수열을 생성합니다.
- 결과 확인
- arr[9] = 34이므로 정답은 ③ 34입니다.
이 문제를 통해 반복문, 배열, 피보나치 수열 개념을 함께 익힐 수 있습니다. 😊
정보처리기사 시험을 준비하는 분들에게 도움이 되었으면 좋겠습니다! 🚀