728x90
프로그래머스 1단계
k - 번째 숫자를 구해보자
K번째 수!
for과 push를 통한 방법입니다.
1. commands의 길이 만큼 반복. 2. 자르고 정렬 : slice(시작점, 끝점).sort(오름차순 정렬) 3. answer에 n번째 숫자 push
function solution(array, commands) {
var answer = [];
for(var i=0; i<commands.length;i++){
var list = array.slice(commands[i][0]-1, commands[i]
[1]).sort((a,b)=>{return a-b});
answer.push(list[commands[i][2]-1]);
}
return answer;
}
K번째 수 : 다른 사람 풀이
for/if 와 sort를 통한 방법입니다.
1. commands 각 배열의 요소들을 map의 from(시작), to(끝), k(k번째 수) 인자로 주면서 명시적으로 표현했고
2. array를 from, to 조건에 맞게 자르고 정렬한 뒤에 k번째 수를 구하여
3. commands 배열을 재구성한 뒤에 반환하는 방법이다.
let array = [1, 5, 2, 6, 3, 7, 4];
let commands = [
[2, 5, 3],
[4, 4, 1],
[1, 7, 3],
];
function solution(array, commands) {
return commands.map(
([from, to, k]) =>
array.slice(from - 1, to).sort((a, b) => a - b)[k - 1],
);
}
console.log(solution(array, commands));
728x90
반응형
'프로그래머스' 카테고리의 다른 글
프로그래머스 1단계 : 2016! (1) | 2022.12.05 |
---|---|
프로그래머스 1단계 : 이상한 문자 만들기 (1) | 2022.12.05 |
프로그래머스 1단계 : 최소직사각형! (1) | 2022.12.05 |
프로그래머스 1단계 : 문자열 내 마음대로 정렬하기! (1) | 2022.12.05 |
프로그래머스 1단계 : 시저 암호! (1) | 2022.12.05 |
댓글