반응형
코딩테스트 연습 > 정렬 > K번째수 Lv1
https://programmers.co.kr/learn/courses/30/lessons/42748?language=javascript
문제정리
array를 commands의 값에 따라 자르고 정렬시켜 해당 위치에 값이 무엇인지 요구하는 문제입니다.
commands의 값이 2중배열로 여러개 존재하다보니 반복문을 사용하였습니다.
코드
commands의 첫 번째, 두 번째 인자는 어디서 부터 어디까지 자르는 값이고
자르는데에는 slice를 사용하였습니다.
그리고 정렬은 sort를 사용하였고
세 번째 인자를 통해 해당 값을 result에 push 하는 방법을 사용했습니다.
function solution(array, commands) {
let result = [];
for(let i = 0; i < commands.length; i++) {
let cut = array.slice(commands[i][0]-1, commands[i][1]).sort((a, b) => a - b)
result.push(cut[commands[i][2]-1])
}
return result
}
반복문을 사용하지 않고 map을 사용하는 방법이 좀 더 깔끔하게 짤 수있습니다.
function solution(array, commands) {
var answer = [];
answer = commands.map(a=>{
return array.slice(a[0]-1,a[1]).sort((b,c)=>b-c)[a[2]-1];
})
return answer;
}
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
행렬의 덧셈 (연습문제 Lv1 /JS) (0) | 2021.12.01 |
---|---|
직사각형 별찍기 (연습문제 Lv1 / JS) (0) | 2021.12.01 |
체육복 (탐욕법 Lv1/JS) (0) | 2021.11.21 |
문자열 내 마음대로 정렬하기(연습문제 Lv1 / JS) (0) | 2021.11.19 |
완주하지 못한 선수(해시 Lv1 / JS) (0) | 2021.11.19 |