문제: 코딩테스트 연습 - 중앙값 구하기 | 프로그래머스 스쿨 (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];
}
}
느낀점
시프트 연산(>>)을 사용할 수도 있구나 라는것을 깨달았다.
'코딩테스트 연습 > 프로그래머스 LV.0' 카테고리의 다른 글
[프로그래머스] Lv.0 외계행성의 나이 - 자바(Java) (0) | 2024.03.14 |
---|---|
[프로그래머스] Lv.0 분수의 덧셈 - 자바(Java) (0) | 2024.03.13 |
[프로그래머스] Lv.0 배열의 유사도 - 자바(Java) (0) | 2024.03.11 |
[프로그래머스] Lv.0 순서쌍의 개수 - 자바(Java) (0) | 2024.03.10 |
[프로그래머스] Lv.0 배열 두 배 만들기 - 자바(Java) (0) | 2024.03.09 |