https://school.programmers.co.kr/learn/courses/30/lessons/181913?language=javascript
문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 return 하는 solution 함수를 작성해 주세요.
my_string // queries // result
"rermgorpsam" // [[2, 3], [0, 7], [5, 9], [6, 10]] // "programmers"
function solution(my_string, queries) {
// 문자열을 배열로 변환해 조작할 수 있게 함
let arr = my_string.split("");
for (let i = 0; i < queries.length; i++) {
let s = queries[i][0];
let e = queries[i][1];
// s부터 e까지 배열의 부분을 슬라이싱하고, 뒤집음
let reversedPart = arr.slice(s, e + 1).reverse();
arr.splice(s, e - s + 1, ...reversedPart); // 뒤집은 부분을 원래 배열에 다시 넣음
// 인덱스 s에서 e-s+1개 요소를 ...reversedPart로 대체
}
// 배열을 문자열로 변환하여 결과 반환
return arr.join("");
}
arr = ['r', 'e', 'r', 'm', 'g', 'o', 'r', 'p', 's', 'a', 'm'];
첫 번째 반복에서는 s = 2, e = 3
arr.slice(2, 4)는 ['r', 'm']을 반환하고, 이를 뒤집으면 ['m', 'r']
reversedPart = ['m', 'r']
arr.splice(2, 2, 'm', 'r')가 호출되어
arr = ['r', 'e', 'm', 'r', 'g', 'o', 'r', 'p', 's', 'a', 'm']