728x90
📍 프로그래머스 1단계 - K번째 수
⚡️ 나의 풀이
JS
로 처음 풀어본 문제인데, 나는 단순 for
문으로 풀었지만 for ~ of
로 풀면 조금 더 깔끔하게 풀 수 있다. 또 slice
는 start, end
인덱스를 잘 계산해야 놓치지 않는다. slice
에서 end
는 포함하지 않는다는 것을 잊지 말자.
추가로 sort
는 element
를 문자열로 취급하여 정렬하기 때문에, 유니코드 순서대로 정렬된다. 따라서 숫자를 정렬하고 싶다면 파라미터를 두 개를 넘겨주고 오름차순은 a-b
, 내림차순은 b-a
하는 과정을 거치자.
// for
function solution(arr, commands) {
const answer = [];
for (let i= 0; i < i.commands.length; i++) {
let command = commands[i];
let newArr = arr.slice(command[0] - 1, command[1]);
newArr.sort((a, b) => a - b);
answer.push(newArr[command[2] - 1]);
}
return answer;
}
// for ~ of
function solution(arr, commands) {
const answer = [];
for (let command of commands) {
let newArr = arr.slice(command[0] - 1, command[1]);
newArr.sort((a, b) => a - b);
answer.push(newArr[command[2] - 1]);
}
return answer;
}
// map함수
function solution(arr, commands) {
const answer = [];
commands.map((command) => {
let newArr = arr.slice(command[0] - 1, command[1]);
newArr.sort((a, b) => a - b);
answer.push(newArr[command[2] - 1]);
});
return answer;
}
반응형
'Algorithm > 프로그래머스(Programmers)' 카테고리의 다른 글
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 제일 작은 수 제거하기 (0) | 2021.07.23 |
---|---|
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 문자열을 정수로 바꾸기 (0) | 2021.07.23 |
[ 파이썬(python) ] 프로그래머스 level2 - 기능 개발 (0) | 2021.07.02 |
[ 파이썬(python) ] 프로그래머스 level1 - 키패드 누르기 (0) | 2021.06.21 |
[ 파이썬(python) ] 프로그래머스 level1 - 소수만들기 (0) | 2021.04.12 |
댓글