[프로그래머스LV0_자바스크립트]문자열 여러번 뒤집기

Hyoyoung Kim·2023년 5월 22일
0

문자열 여러번 뒤집기

https://school.programmers.co.kr/learn/courses/30/lessons/181913

문제설명

문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 return 하는 solution 함수를 작성해 주세요.

입출력 예시

내 코드

function solution(my_string, queries) {
    var answer = my_string.split('');
    let result =''
    for(let x of queries){
        let num = x[1]-x[0]
        result=answer.slice(x[0],x[1]+1).reverse();

       answer.splice(x[0],num+1);
       answer.splice(x[0],0,...result)

    }
    return answer.join('');
}

console.log(solution("rermgorpsam",[[2, 3], [0, 7], [5, 9], [6, 10]]))

코드 설명

function solution(my_string, queries) {
//1. my_string을 배열로 answer에 넣어준다.
    var answer = my_string.split('');
    let result =''
//2.queries를 for...of문으로 순환한다. 
    for(let x of queries){
        let num = x[1]-x[0]
//3.result에 answer배열에서 x[0]의 수부터 x[1]+1까지의 수를 reverse로 거꾸로 바꿔서 넣어준다. 
        result=answer.slice(x[0],x[1]+1).reverse();
//4.answer의 x[0]인덱스부터 num개를 삭제한다.
       answer.splice(x[0],num+1);
//5.answer에 x[0]인덱스에 result를 넣어준다. '...result'가 아닌 'result'를 넣어주면
// [ 's', 'p', 'r', 'o', 'g', [ 'm', 'r' ], 'e', 'r' ] 이렇게 들어가기에 
//...result해서 넣어준다.
       answer.splice(x[0],0,...result)

    }
//6.배열 answer을 문자열로 바꿔준다.
    return answer.join('');
}

console.log(solution("rermgorpsam",[[2, 3], [0, 7], [5, 9], [6, 10]])) //"programmers"

0개의 댓글