(java)프로그래머스 코딩 테스트 - 중앙값 구하기

navelop·2023년 8월 14일
0

TIL(CODE)

목록 보기
2/20
Q. 정수 배열 array가 매개변수로 주어질 때,
중앙값을 return 하도록 solution 함수를 완성해보세요.

* array의 길이는 홀수라 가정합니다.
import java.util.Arrays; // array import (이클립스에선 자동으로 추가 됨)

class Solution {
    public int solution(int[] array) {
        // array의 길이는 홀수라 가정
        // array.sort
        int answer = 0;
        Arrays.sort(array);
        // Array.sort(); 기본 오름차순 정렬 메서드
        // array[(배열의길이-1)/2 = 중앙값 위치];
        // ex 배열의 길이 5(-1) / 2 = 2번째 인덱스가 중앙값
        answer = array[array.length/2];
        return answer;
 
    }
}

Arrays.sort(); : 기본 오름차순 정렬의 배열 메서드

중앙값 구하기 = 중앙인덱스를 구해야 한다.
홀수 중앙 인덱스 식 = (배열의 길이 - 1) / 2

ex) 길이가 `7`인 배열의 중앙인덱스를 구하시오
-----> (7-1)/2 = 3번째 index.

그렇다면 배열의 길이가 짝수 일때는 어떡하나요..?

짝수 배열 중앙 인덱스 : (배열[중앙 인덱스 1] + 배열[중앙 인덱스 2]) / 2

import java.util.Arrays;

class Solution {
    public int solution(int[] array) {
        // array의 길이는 짝수라 가정
        int answer = 0;
        Arrays.sort(array);

        int middle1 = array[array.length / 2 - 1]; // 중앙 인덱스의 앞 인덱스 값
        int middle2 = array[array.length / 2];     // 중앙 인덱스 값
        answer = (middle1 + middle2) / 2;          // 중앙값 계산 -- 짝수는 평균값

        return answer;
    }
}

0개의 댓글