기출문제/정보처리기사

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]);
    }
}

이제 하나씩 분석해 보겠습니다.


🛠 코드 실행 과정

  1. 배열 선언 및 초기화
    • arr이라는 정수형 배열을 선언하고 크기를 10으로 설정합니다.
    • arr[0] = 0, arr[1] = 1로 초기화합니다.
  2. int arr[]; arr = new int[10]; // 크기가 10인 배열 생성 arr[0] = 0; arr[1] = 1;
  3. while 문 실행
    • i = 0부터 시작하여 i < 8 동안 반복됩니다.
    • arr[i + 2] = arr[i + 1] + arr[i] 연산을 통해 배열을 채워갑니다.
  4. 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가 출력됩니다.


📝 정리

  1. 배열을 선언하고 초기값을 설정합니다.
    • arr[0] = 0, arr[1] = 1
  2. 반복문을 이용해 배열을 채웁니다.
    • arr[i + 2] = arr[i + 1] + arr[i] 연산을 수행하여 피보나치 수열을 생성합니다.
  3. 결과 확인
    • arr[9] = 34이므로 정답은 ③ 34입니다.

이 문제를 통해 반복문, 배열, 피보나치 수열 개념을 함께 익힐 수 있습니다. 😊
정보처리기사 시험을 준비하는 분들에게 도움이 되었으면 좋겠습니다! 🚀