문제
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다.
예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다.
정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해 보세요.
제한사항
풀이
import java.util.Arrays;
class Solution {
public int solution(int[] array) {
Arrays.sort(array);
int size = array.length;
int middle = Math.round(size/2);
return array[middle];
}
}
1. 배열 오름차순 정렬하는 Array.sort함수 사용하기 위해 java.util.Arrays를 import
2. 배열 오름차순 정렬 후 배열 크기를 size에 담고
3. 중간 인덱스를 구하기 위해 size를 2로 나눈 값을 middle에 담는다
4. array [middle]로 배열 중간값을 구해 return
* 제한사항에 따라 배열의 크기는 홀수이다.
다른 풀이
import java.util.Arrays;
class Solution {
public int solution(int[] array) {
Arrays.sort(array);
return array[array.length>>1];
}
}
- 시프트 연산으로 배열의 중간값을 바로 구해 더 간략하게 작성할 수 있다
* 예로 숫자 7을 2진수로 나타내면 00000111이며 >>1 만큼 이동했을 때 00000011로 십진수로 나타냈을 때 3이다.
* 배열 크기가 홀수일 때 >>1 시프트 연산을 사용하면 중간치를 구할 수 있음
실행결과
'Etc > 코딩 챌린지' 카테고리의 다른 글
VScode에서 프로젝트 Git Hub에 업로드하기 & 배포하기 (0) | 2023.03.14 |
---|---|
책으로 배우는 비전공자 코딩 챌린지 4일차 - HTML 태그와 특징(inline & box요소) (0) | 2022.11.24 |
책으로 배우는 비전공자 코딩 챌린지 3일차 - VSCode 확장 프로그램 추천 (0) | 2022.11.23 |
책으로 공부하는 비전공자 코딩 챌린지 2일차 - HTML 구조와 코딩 상식 (0) | 2022.11.23 |
책으로 공부하는 비전공자 코딩 챌린지 1일차 - 웹 용어와 HTML (0) | 2022.11.23 |