티스토리 뷰

문제 설명

배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.

예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면

  1. array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.
  2. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.
  3. 2에서 나온 배열의 3번째 숫자는 5입니다.

배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요.

제한사항

  • array의 길이는 1 이상 100 이하입니다.
  • array의 각 원소는 1 이상 100 이하입니다.
  • commands의 길이는 1 이상 50 이하입니다.
  • commands의 각 원소는 길이가 3입니다.

입출력 예

arraycommandsreturn

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

입출력 예 설명

[1, 5, 2, 6, 3, 7, 4]를 2번째부터 5번째까지 자른 후 정렬합니다. [2, 3, 5, 6]의 세 번째 숫자는 5입니다.
[1, 5, 2, 6, 3, 7, 4]를 4번째부터 4번째까지 자른 후 정렬합니다. [6]의 첫 번째 숫자는 6입니다.
[1, 5, 2, 6, 3, 7, 4]를 1번째부터 7번째까지 자릅니다. [1, 2, 3, 4, 5, 6, 7]의 세 번째 숫자는 3입니다.


function solution(array, commands) {
    let answer = [];
    
    for(let i=0; i < commands.length;i++){
        let sortedArray = (array.slice(commands[i][0]-1, commands[i][1])).sort((a,b)=> a - b);        
        console.log(sortedArray);        
        answer.push(sortedArray[commands[i][2]-1]);
    }
   
    return answer;
}


자바스크립트의 경우 sort 시 숫자가 아닌 문자로 인식하기 때문에 자동형변환도 없어서
.sort( (a,b)=> a - b ) 를 명시해 줘야 숫자 정렬이 된다고 한다.

arr.sort( (a,b)=> a - b )

(아래와 같다.)

arr.sort(function(a, b) {
console.log(a,b)
    return b - a;
}) ;

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

 

Array.prototype.sort() - JavaScript | MDN

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

developer.mozilla.org

 

sort 인자로 arr의 각 요소를 순서대로 2개씩 넣고 자바스크립트 자체 함수를 돌리는 것 같다.

a, b 파라미터를 입력받고 

a > b이면 1

a=b 이면 0,

a < b 이면 -1을 리턴한다.

 

간단하게는 return  값을 a-b 로 주어 조건식 없이 1, 0, -1 리턴값을 줄 수 있다.

return a-b 는 오름차순

return b-a는 내림차순.

 

문자의 경우 .sort() 하면 오름차순.

.sort().reverse() 하면 내림차순.

 

이분이 정리를 잘 해 두셨다~!

https://hianna.tistory.com/409

 

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

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

hianna.tistory.com

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함