[프로그래머스/JS] LV.0 - 중앙값 구하기

JS·2023년 2월 19일
0

알고리즘

목록 보기
10/26

🏄‍문제

중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.

🕐제한사항

  • array의 길이는 홀수입니다.
  • 0 < array의 길이 < 100
  • -1,000 < array의 원소 < 1,000

👨‍💻입출력 예 설명

numer1denom1
[1, 2, 7, 10, 11]7
[9, -1, 0]0

입출력 예 #1

  • 본문과 동일합니다.

입출력 예 #2

  • 9, -1, 0을 오름차순 정렬하면 -1, 0, 9이고 가장 중앙에 위치하는 값은 0입니다.

🧐나의 풀이

function solution(array) {
    return array.sort((a,b)=>{return a-b;}).at(Math.floor(array.length/2))    
}

// sort()로 매개변수로 받은 배열을 오름차순 정렬
// Math.floor(): 소수점 이하를 버림
// Math.ceil() : 소수점 이하를 올림한다.
// Math.round() : 소수점 이하를 반올림한다.

🥳다른 사람의 풀이

//1 
const solution = array => 
array.sort((a,b) => a-b)[array.length/2 <<0]


//2 
function solution(array) {
    var answer = 0;
    let number = array.length/2;
    let tmpNum = 0;
    while(ascCheck(array)){
        for(let i = 0; i<array.length;i++){
            if(array[i]>array[i+1]){
                tmpNum=array[i];
                array[i]=array[i+1];
                array[i+1]=tmpNum;
            }
        }    
    }

    number= Math.round(number);
    answer=array[number-1];
    return answer;
}

function ascCheck(array){
    for(let i=0;i<array.length;i++){
        if(array[i]>array[i+1]){
            return true;
        }
    }
    return false;
}

profile
신입 FE 개발자

0개의 댓글

관련 채용 정보