프로그래머스 코딩테스트 [중앙값 구하기] javascript

Louis·2023년 11월 16일
1
post-thumbnail

안녕하세요!

오늘도 어김없이 코딩테스트 리뷰로 돌아왔습니다~~~

현재 리액트 프로젝트가 진행중이긴한데 아직도 감을 못 잡고 있는 상황이여서 오늘도 코딩테스트 리뷰로 대체하려고 합니다....ㅎ

어제부터 몸이 계속 안좋았는데 그래도 지금은 조금은 나아졌습니다!

그러면 본격적으로 시작해보겠습니다!

문제

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

활용된 주요 코드

.sort(), Math.floor 메서드를 활용하여 오름차순으로 정렬하고 원하는 배열의 중앙값을 구할 수 있었습니다

나의 풀이

function solution(array) {
    
    const set = array.sort((a,b)=>(a-b))
    const num = set.length / 2
    const arrayResult = Math.floor(num)
    const answer = set[arrayResult]
   
    
    return answer;
}

문제 해석

일단은 현재

입출력 예시가 이런식으로 제시 되어 있고, 문제에서 주어진 값들을 크기의 순서대로 정렬했을 때 라고 했으니 먼저 .sort() 메서드를 활용해서 배열의 순서를 정렬해줍니다

.sort() 의 기본구조는 .sort((a,b)=>(a-b)) 입니다 현재는 오름차순으로 정리하였고

반대로 .sort((a,b)=>(b-a)) 로 진행할 경우 내림차순으로 정리 됩니다

그렇게 진행하여 배열을 오름차순으로 정렬하고 주어진 배열의 갯수가 홀수임으로 중앙값을 구하기 위해 set.length/2를 작성합니다 이때 set은 오름차순으로 정렬된 배열을 변수에 담은 값입니다

set.length/2 를 진행하면 당연히 소수점이 나올 수 밖에 없습니다 그렇기에 우리는 소수점음 과감히 버려줍니다!

그래서 Math.floor(num) 코드를 작성하여 버려준 소수점을 arrayResult에 담아줍니다

그 다음 오름차순으로 정리된 배열에서 arrayResult번째 원소를 선택하여 return 해줍니다!

그렇게 되면

이렇게 정답을 받아보실 수 있습니다!!

네 이번에는 .sort()Math.floor() 에 대해 알아보았습니다 : )

공부를 할때에는 .sort() 에 대해 이해가 되지 않았는데 또 이렇게 필요해서 알아보고 접목 시키고 하니깐 이해가 되더라구요? 정말 신기했습니다!

역시 사람은 실전으로 부딪혀 봐야 성장을 하는 것 같습니다!

요 며칠 동안 몸이 아파서 열심히 공부도 못하고 포스팅도 못했는데 제발 내일은 몸이 좋아졌으면 좋겠습니다...ㅎ

네! 그러면 여기서 짧게 인사를 드리구요!
또 몸 항상 건강하시고
우리는 또 행복하자구요!

profile
디자이너의 코딩 도전👍🏻

0개의 댓글