728x90
반응형
(1) 내 풀이
function solution(array, commands) {
let sort = []
let answer = [];
commands.map(command=>{
sort = array
.slice(command[0]-1,command[1])
.sort((a,b)=>a-b)
.filter((x,index)=>index === command[2]-1)
answer.push(sort)
})
return answer.flat()
}
* commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]]
1. map을 돌려서 각각의 배열의 index를 사용함
2. slice를 사용하여 구간 값 추출
3. sort를 사용하여 오름차순 정렬
4. filter를 사용하여 k번째수 추출 ==> [[3],[1],[3]] 이 나옴
5. flat을 사용해서 해결 완료
(2) 다른사람 풀이
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]
})
}
나는 map을 사용했었는데
다음에는 구조분해할당으로 해야겠다!
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스 | javascript] 타켓넘버 (dfs) : 재귀함수 사용 (0) | 2024.04.21 |
---|---|
[프로그래머스 | javascript] 의상 (해시) (1) | 2024.04.18 |
[프로그래머스 | javascript] 전화번호 목록 (해시) (0) | 2024.04.13 |
[프로그래머스 | javascript] 완주하지 못한 선수 (해시) (0) | 2024.04.12 |
[프로그래머스 | javascript] 폰켓몬 (해시) (0) | 2024.04.11 |