[개발] - Java/알고리즘
[Lv.0] 중앙값 구하기
완벽한 장면
2023. 5. 27. 06:31
https://school.programmers.co.kr/learn/courses/30/lessons/120811
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다.
예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다.
정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.
제한 사항
입출력 예
입출력 예 설명
아이디어
- 평균하고 중앙값하고는 크게 상관이 없다.
- 자바에서는 배열을 정렬해주는 스태틱 메서드를 제공한다.
- 이게 바로 Arrays.sort()
- 만약 리턴이 있다면, 배열을 정리했으니까 배열일 것이다.
- 그런데 배열도 사실 객체, 리턴이 없이도 원본을 바꿀 수가 있다.
- int로 전달을 하면 값이 복사되어서 넘어가니까 함수에서 아무리 지지고 볶아도 밖에 영향을 주지 않았는데, 배열은 객제이기 때문에 그냥 원본의 조작이 가능했지.
- 따라서 리턴을 따로 해주지 않고 이 메서드만 달랑 써줘도 원본이 저장이 될 거다.
- 중앙값은 모든 원소의 가운데 값. => 나누기 2
나의 답안
import java.util.*;
class Solution {
public int solution(int[] array) {
Arrays.sort(array);
int index = array.length/2;
return array[index];
}
}
728x90
반응형