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