나의 답
[pseudo code]
1. shallow copy 문제로, array의 값을 stringify 했다가 다시 배열로 만들어 줘야 함 => shallow copy가 아니라, split 함수 자체가 원본을 자르는 것임..! (temp = array.split(1,1)을 했다면, temp 값에는 원본에서 잘라낸 배열을, array 배열에는 부분이 잘려나간 나머지를 리턴해주는 것임!!)
2. 자른 배열을 받을 temp = []생성, answer =[]생성
2. command는 배열 속의 배열로 되어 있음 -> 루프를 돌면서 각 배열을 받아오기
- temp 변수를 선언하고, 루프 밖에서 만들어 둔 array의 string 값을 가져와 split 해줌
- i 값은 0번째, j 값은 1번째, k 값은 2번째
- temp = splice(i-1, (j-i+1))로 담아주고 sort로 오름차순 정렬
- temp[k-1] 값을 answer에 푸쉬
3. return answer
function solution(array, commands) {
const str = array.join(" ");
let answer = [];
for (c of commands) {
let temp = str.split(" ");
let i = c[0],
j = c[1],
k = c[2];
temp = temp.splice(i - 1, j - i + 1).sort((a, b) => a - b);
answer.push(Number(temp[k - 1]));
}
return answer;
}
console.log(
solution(
[1, 5, 2, 6, 3, 7, 4],
[
[2, 5, 3],
[4, 4, 1],
[1, 7, 3],
]
)
);
'항해99_10기 > [2주차] 알고리즘 문제풀이' 카테고리의 다른 글
[32번][중상] 실패율 (0) | 2022.11.25 |
---|---|
[30번][중급] 나머지가 1이 되는 수 찾기 (0) | 2022.11.23 |
[28번][중급] 최대공약수와 최소공배수 (0) | 2022.11.23 |
[27번][중급] 예산 (0) | 2022.11.23 |
[26번][중급] 약수의 합 (0) | 2022.11.23 |