코드 그라데이션

[Lv.0] 중앙값 구하기 본문

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
Comments