| 문제
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때
가장 중앙에 위치하는 값을 의미합니다.
예를 들어 1,2,7,10,11의 중앙값은 7입니다.
정수 배열 array가 매개변수로 주어질 때,
중앙값을 return하도록 solution 함수를 완성해 보세요.
| 제한 사항
array의 길이는 홀수입니다.
0 < array의 길이 < 100
-1000 < array의 원소 < 1,000
| 입출력 예
array | result |
[1, 2, 7, 10, 11] | 7 |
[9, -1, 0] | 0 |
| 풀이 1
배열을 오름차순으로 정렬한 다음 가운데 있는 값을 return 했습니다.
public int solution01(int[] array) {
for(int i = 0 ; i < array.length ; i++){
for(int j = 0 ; j < array.length ; j++){
if(array[i] > array[j]){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array[array.length / 2];
}
| 풀이 2
java.util 패키지 아래에 있는 Arrays 클래스의 도움을 받았습니다.
Arrays가 가지고 있는 메소드 sort를 사용하면 손쉽게 정렬이 가능합니다.
import java.util.Arrays;
public int solution02(int[] array) {
Arrays.sort(array);
return array[array.length/2];
}
| 해설
여러 숫자 또는 문자 정보가 주어졌을 때
최댓값, 최솟값, 중앙값을 도출하는 방법은 항상 정렬에서부터 출발합니다.
다만 조건문과 반복문으로 직접 정렬하니
sort 메소드를 사용하는 것보다 0.2ms 정도 빠르게 수행되었습니다.
해가 갈수록 많은 래퍼런스들이 쏟아져 나오지만
항상 클래식을 이길 수 있는 건 없다는 생각이 드네요.
'개발 > 개발 공부' 카테고리의 다른 글
[프로그래머스] 코딩테스트 입문 : 짝수는 싫어요. (0) | 2024.08.28 |
---|---|
[프로그래머스] 코딩테스트 입문 : 최빈값 구하기 (0) | 2024.08.28 |
[프로그래머스] 코딩테스트 입문 : 나머지 구하기 (0) | 2024.08.27 |
[프로그래머스] 코딩테스트 입문 : 배열 두배 만들기 (0) | 2024.08.27 |
[프로그래머스] 코딩테스트 입문 : 분수의 덧셈 (0) | 2024.08.26 |
댓글