반응형
2022.08.16 - [Coding Test/Python] - [프로그래머스] K번째수 Python Code
2022.08.16 - [Coding Test/C++] - [프로그래머스] K번째수 C++ Code
2022.08.16 - [Coding Test/Python] - [프로그래머스] K번째수 Python Code
저번 포스트들에 이어 마지막으로 JS로 풀어보겠다.
문제
구현
파이썬 코드와 같이 slicing 후에
index값을 answer에 푸시한다.
코드
function solution(array, commands) {
let answer = [];
for(let cmd = 0; cmd < commands.length; cmd++){
let [i,j,k] = commands[cmd]
let slice = array.slice(i-1, j)
answer.push(slice.sort()[k-1])
}
return answer;
}
이렇게 하면 테스트케이스에서 하나가 틀리길래 아래와 같이 바꿔보았다.
function solution(array, commands) {
let answer = [];
for(let cmd = 0; cmd < commands.length; cmd++){
let [i,j,k] = commands[cmd]
let slice = array.slice(i-1, j)
answer.push(slice.sort((a, b) => a - b)[k-1])
}
return answer;
}
이유는 sort가 문자열의 유니코드를 따라서 정렬하기에
숫자 정렬시 우리가 생각하는 정렬이 되지 않는다고 한다.
아래 링크를 참고했다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
다른 풀이
function solution(array, commands) {
return commands.map(v => {
return array.slice(v[0] - 1, v[1]).sort((a, b) => a - b).slice(v[2] - 1, v[2])[0];
});
}
약간 읽기는 어렵지만 숏 코딩을 하신 분 코드이다.
로직은 위의 풀이와 똑같다.
반응형
'Coding Test > JavaScript' 카테고리의 다른 글
[프로그래머스] 성격 유형 검사하기 JS Code (7) | 2022.08.19 |
---|---|
[프로그래머스] 약수의 개수와 덧셈 JavaScript Code (0) | 2022.08.17 |
[프로그래머스] 체육복 JavaScript Code (0) | 2022.08.10 |
[프로그래머스] 예산 JavaScript Code (0) | 2022.08.10 |
[프로그래머스] 없는 숫자 더하기 JavaScript Code (2) | 2022.08.08 |
댓글