코딩테스트 연습/프로그래머스 LV.0

[프로그래머스] Lv.0 중앙값 구하기 - 자바(Java)

5ein 2024. 3. 12. 13:00

문제: 코딩테스트 연습 - 중앙값 구하기 | 프로그래머스 스쿨 (programmers.co.kr)

문제설명

중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 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

나의 문제 풀이

import java.util.*;

class Solution {
    public int solution(int[] array) {
        int answer = 0;
        
        ArrayList<Integer> list = new ArrayList<>();
		for (int x : array) {
			list.add(x);
		}
		Collections.sort(list);
		answer = list.get(array.length / 2);
        
        return answer;
    }
}

다른 사람의 문제풀이

import java.util.Arrays;

class Solution {
    public int solution(int[] array) {
        Arrays.sort(array);
        return array[array.length >> 1];
    }
}

느낀점

시프트 연산(>>)을 사용할 수도 있구나 라는것을 깨달았다.


문제 출처: 코딩테스트 연습 | 프로그래머스 스쿨 (programmers.co.kr)