Header Banner
GG Logo

Future Engineering

기술의 최전선을 기록합니다.

기술 자료/Algorithm/프로그래머스 문자열 여러 번 뒤집기

프로그래머스 문자열 여러 번 뒤집기

Algorithm4개월 전
function solution(my_string, queries) {
    let strArr = my_string.split(''); // 문자열을 배열로 변환해서 다루기 쉽게 함

    for (let [start, end] of queries) {
        const reversed = strArr.slice(start, end + 1).reverse(); 
        // slice: start부터 end까지 잘라냄, reverse: 그걸 뒤집음

        strArr.splice(start, end - start + 1, ...reversed); 
        // splice: 원래 배열에서 start부터 해당 길이만큼 지우고 그 자리에 reversed를 넣음
    }

    return strArr.join(''); // 배열을 다시 문자열로 합쳐서 리턴
}

🧩 문제 요약

  • 문자열 my_string이 주어져요. 예: 'abcdefg'

  • queries는 배열 안에 [s, e] 쌍들이 들어 있고, 이는 my_strings부터 e까지 글자를 뒤집으라는 뜻이에요.

  • 여러 개의 [s, e] 쌍이 있을 수 있고, 이걸 순서대로 적용해야 해요.

 

💡 핵심 아이디어

  1. 문자열은 변경이 불가능(immutable) 하니까, 배열로 바꿔서 다루는 게 편해요.

  2. slice(start, end+1)은 원하는 부분만 잘라서 가져올 수 있어요.

  3. reverse()로 잘라온 부분을 뒤집어요.

  4. splice(start, 길이, ...바꿀내용)을 써서 원래 배열을 수정해요.

 

✨ 정리하면

  • 문자열을 배열로 바꾼 다음,

  • 쿼리마다 해당 부분을 자르고 → 뒤집고 → 다시 붙여넣기!

  • 마지막엔 배열을 문자열로 되돌리면 끝!

키워드

프로그래머스 문자열 여러 번 뒤집기알고리즘 문제 풀이