728x90
반응형
이번 글은 아래 링크의 글들을 참조하여 작성하였습니다.
[프로그래머스] K번째 수 | JavaScript
K번째수 배열을 얼마나 잘 다루는지 보는 테스트이다. 다시 말해 배열의 인덱스, 순서 처리와 정렬 등을 할 수 있는지 보는 테스트인 것 같다. 배열 array의 i번째 숫자부터 j번째 숫자까지 자른 후
onlydev.tistory.com
이번 문제에 대한 자세한 사항은 다음 링크를 참조하길 바랍니다.
slice() 메서드와 sort() 메서드만 잘 활용한다면 수월하게 풀 수 있는 문제이다. 먼저 for문을 돌면서 변수 i, j, k에 각각 잘라내기 시작 인덱스, 잘라내기 끝 인덱스, 반환값의 인덱스를 넣어주고 잘라낸 배열을 정렬한 다음 정답 배열 answer에 해당 값을 push 해준다.
Solution 1은 내가 푼 답이고 Solution 2는 개발 전용차선님의 블로그에서 발췌한 해답이다. filter를 활용하여 배열을 잘라낸 부분이 돋보이는 해답이다.
Solutions
Solution 1.
function solution(array, commands) { const answer = []; for (let idx = 0; idx < commands.length; idx++) { const i = commands[idx][0]; // 자르기 시작 idx const j = commands[idx][1]; // 자르기 끝 idx const k = commands[idx][2]; // 반환값 idx const result = array.slice(i - 1, j).sort((a, b) => a - b)[k - 1]; answer.push(result); } return answer; }
Solution 2.
function solution(array, commands) { return commands.map((command) => { const [startIdx, endIdx, returnIdx] = command; const answer = array .filter((value, fIndex) => fIndex >= startIdx - 1 && fIndex <= endIdx - 1) .sort((a, b) => a - b)[returnIdx - 1]; return answer; }); }
728x90
반응형
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Programmers] level 1: 체육복 by JavaScript (0) | 2022.07.06 |
---|---|
[Programmers] level 1: 모의고사 by JavaScript (0) | 2022.07.04 |
[Programmers] level 1: 완주하지 못한 선수 by JavaScript (0) | 2022.07.04 |
[Programmers] level 1: 소수 만들기 by JavaScript (0) | 2022.07.02 |
[Programmers] level 1: 내적 by JavaScript (0) | 2022.07.01 |
댓글