모두CBT

23-1아래 Java 프로그램은 배열을 내림차순으로 정렬해 8 6 3 … | 2023년 정보처리기사실기 1회차 기출문제 상세 페이지

3

23-1

아래 Java 프로그램은 배열을 내림차순으로 정렬해 8 6 3 2 1을 출력한다. 빈칸 ①, ②에 들어갈 알맞은 식별자를 적으시오. (단, 코드에 선언된 변수명으로 적는다.)

public class Main {
    static void exchange(int[] arr, int p, int q) {
        int tmp = arr[q];
        arr[q] = arr[p];
        arr[__①__] = tmp;
    }

    static void sortDesc(int[] arr, int n) {
        for (int r = 0; r < n - 1; r++) {
            for (int c = 0; c < n - 1 - r; c++) {
                if (arr[c] < arr[c + 1]) {
                    exchange(arr, c, c + 1);
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] nums = {3, 8, 2, 6, 1};
        int size = 5;
        sortDesc(nums, __②__);
        for (int x : nums) {
            System.out.print(x + " ");
        }
    }
}
해설

① p

② size


[해설]

exchange는 tmp에 arr[q]를 보관하고, arr[q]에 arr[p]를 옮긴 뒤, 보관해 둔 값을 arr[p]에 넣어야 두 값이 맞바뀐다.

sortDesc의 두 번째 매개변수 n은 정렬할 원소 개수다. main에서 원소 개수를 담아 둔 변수는 size(5)이다.

sortDesc는 인접한 두 값을 비교해 앞이 작으면 바꾸는 버블 정렬이다. 한 바퀴마다 가장 작은 값이 뒤로 밀려 3 8 2 6 1이 8 6 3 2 1이 된다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.