
문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.

function solution(my_string, s, e) {
var answer = '';
return answer;
}
solution("Progra21Sremm3", 6, 12);
function solution(my_string, s, e) {
let slicedString = my_string.slice(s, e +1)
let splitedArray = my_string.split(slicedString)
splitedArray.splice(1,0,slicedString.split("").reverse().join(""))
return splitedArray.join("")
}
solution("Progra21Sremm3", 6, 12);
s ~ e에 해당하는 문자를 추출하고 해당 문자를 기준으로 my_string을 잘라내고 배열로 만든다.21Sremm를 기준으로 자르면 [Progra,3] 이렇게 됨.splice로 1번째에 reverse 뒤집어준 문자를 넣어주고 join("")으로 텍스트화 해준다.❗️테스트 케이스는 다 통과하였지만, 반례가 존재했음
만약 같은 문자가 계속해서 반복되는 string이라면 split할 때 문제가 생김
반례 케이스 : solution("abcabcabc", 0, 2);
기대 결과: "cbaabcabc"
실행 결과: "cba"
function solution(my_string, s, e) {
const arr = [...my_string];
const reversedString = arr.slice(s, e + 1).reverse();
arr.splice(s, reversedString.length, reversedString);
return arr.flat().join("")
}
solution("abcabcabc", 0, 2);
my_string을 배열화 하여 변수에 저장 (reverse 함수를 쓰기위함)s ~ e 만큼 잘라내고 뒤집어 준뒤 reversedString변수에 저장.splice 활용해서 s ~ e 만큼 문자 삭제해주고 그 자리에 뒤집어준 reversedString를 삽입arr라는 배열에 reversedString라는 배열이 또 들어가 있으니 flat()을 활용하여 합치고 join("")하여 문자열로 만들고 반환.