728x90
나의 해결 방법
function solution(array, commands) {
const result = [];
commands.forEach(el => {
const [i, j, k] = el
const cutArr = array.slice(i-1, j).sort((a, b) => a - b);
result.push(cutArr[k-1])
})
return result;
}
이건 쉬운 문제.
타인의 해결 방법
function solution(array, commands) {
return commands.map(command => {
const [sPosition, ePosition, position] = command
const newArray = array
.filter((value, fIndex) => fIndex >= sPosition - 1 && fIndex <= ePosition - 1)
.sort((a,b) => a - b)
return newArray[position - 1]
})
}
2차원 배열인 commands을 map 루프 돌면서, 해당 배열을 3개 변수로 분해해주는 점은 비슷하고 그 외에도 거의 비슷하다.
다만, filter의 idx 기준으로 배열을 자른 점이 흥미로운 접근이라 생각했다. 하지만 filter로 할 필요가 있는지는 의문이다. slice 메소드가 명시적으로 자른다는 의미에서 더 적절하다고 생각한다.
728x90
'Research > Coding Test' 카테고리의 다른 글
스택/큐_기능개발 (1) | 2023.11.19 |
---|---|
스택/큐_같은 숫자는 싫어 (1) | 2023.11.19 |
해시_전화번호 목록 (0) | 2023.11.18 |
해시_폰켓몬 (0) | 2023.11.17 |
프로그래머스_lv0_안전지대 (0) | 2023.11.17 |
댓글