🗣️ 메모
✏️ [배열의 중앙값 구하기, Arrays.sort() 메소드]
문제 설명
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.
제한사항
- array의 길이는 홀수입니다.
- 0 < array의 길이 < 100
- -1,000 < array의 원소 < 1,000
입출력 예
array | result |
[1, 2, 7, 10, 11] | 7 |
[9, -1, 0] | 0 |
입출력 예 설명
입출력 예 #1
- 본문과 동일합니다.
입출력 예 #2
- 9, -1, 0을 오름차순 정렬하면 -1, 0, 9이고 가장 중앙에 위치하는 값은 0입니다.
🔥🎉 TRY #1 [실행 결과]
👉🏻 중앙값을 구하기 위해서 배열을 정렬한 후 소수점을 버린 index를 구해 주면 됨!
ex) int[] array = {1, 2, 3, 4 ,5} 라면, 중앙값은 배열의 크기인 5 / 2 = 2.5에 소수점을 버린 2이므로 array[2] = 3이 됨!
import java.util.Arrays;
class Solution {
public int solution(int[] array) {
int answer = 0;
Arrays.sort(array);
int num = (int)(Math.floor((double)array.length / 2));
answer = array[num];
return answer;
}
}
👉🏻 Arrays.sort() : 배열을 정렬하는 메소드
기본 정렬은 오름차순
내림차순 정렬을 하고 싶을 경우 reverseOrder() 메소드를 추가로 사용하면 됨
import java.util.Arrays;
public class Sort{
public static void main(String[] args) {
String arr[] = {"apple","orange","banana","pear","peach","melon"};
Arrays.sort(arr,Collections.reverseOrder());
for (String i : arr) {
System.out.print("["+i+"]");
}
}
}
// 출력값
[pear][peach][orange][melon][banana][apple]
출처: 프로그래머스 코딩 테스트 연습,https://school.programmers.co.kr/learn/challenges