본문 바로가기

알고리즘

[프로그래머스/정렬] k번 째 수 (javascript)

아무리 봐도 왜 틀린지 몰라서 찾아보다가 sort()함수에 대해 나와있는 공식 문서에 해답이 있었다.

splice와 slice의 차이도 알게됐다. splice는 원본에서 일부를 잘라오는 것이고 slice는 원본을 그대로 둔 상태로 실행한다.

 

const sortArray = sliceArray.sort()

위에서 아래로 바꾸니 그제서야 통과했다. 

const sortArray = sliceArray.sort(function(a,b) {
    return a-b;
  })

 

 

 

 

sort함수가 내가 생각하는 것처럼 동작하지 않았던게 문제였다. 함수가 어떻게 동작하는 지 여태 사용하면서 모르고 있었다.

 

설명

compareFunction이 제공되지 않으면 요소를 문자열로 변환하고 유니 코드 코드 포인트 순서로 문자열을 비교하여 정렬됩니다. 예를 들어 "바나나"는 "체리"앞에옵니다. 숫자 정렬에서는 9가 80보다 앞에 오지만 숫자는 문자열로 변환되기 때문에 "80"은 유니 코드 순서에서 "9"앞에옵니다.

 

 

https://hianna.tistory.com/409

 

[Javascript] 배열 정렬하기 (오름차순, 내림차순, 문자열, 객체)

배열 정렬하기 (오름차순, 내림차순, 문자열, 객체) 1. sort() 함수 2. sort() 함수로 숫자 오름차순 정렬하기 3. sort() 함수로 숫자 내림차순 정렬하기 4. sort() 함수로 문자열 정렬하기 5. sort() 함수

hianna.tistory.com

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

 

Array.prototype.sort() - JavaScript | MDN

sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.

developer.mozilla.org