[프로그래머스 / js] K번째 수

jinny·2021년 9월 23일
0

프로그래머스

목록 보기
1/5
post-thumbnail

배열의 i번째 숫자부터 j번째 숫자까지 자르고 정렬 후 k번째에 있는 수 구하기


for문

let solution = (arr,comm) => {
    
    let answer = [];
    for(let i=0; i<comm.length; i++){
        answer.push(arr
                    .slice(comm[i][0]-1,comm[i][1])
                    .sort((a,b)=>a-b)[comm[i][2]-1]);
    }
    return answer;
}

Array.map()


let solution = (arr,comm) => {
    
    let answer = comm.map(([f,t,k]) => 
                          arr.slice(f-1,t).sort((a,b)=>a-b)[k-1]);

    return answer;
}
  • sort()할 때, 숫자는 유니코드로 정렬되기 때문에 무조건 정렬 함수를 넣어야 한다.
    → 안 넣고 돌리니깐 test 2에서 오류 발생

  • map()을 사용하면 for 문을 돌리지 않고도 배열을 돌 수 있음

Array.prototype.map

: 배열 내 모든 요소를 순회하며 인수로 전달받은 콜백 함수를 반복 호출하여
  새로운 배열로 반환

const array1 = [1, 4, 9, 16]; 
const map1 = array1.map(x => x * 2);
console.log(array1); // [1, 4, 9, 16]
console.log(map1);   // [2, 8, 18, 32]
profile
주니어 개발자의 기록

0개의 댓글

관련 채용 정보