자료구조&알고리즘/프로그래머스

[Programmers] 문자열 여러 번 뒤집기

고쩡이 2023. 9. 18. 18:15

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

Algorithm

인덱스 구간을 [start,end]로 지정한다. 그 후 [start,end]에 해당하는 구간을 reverse한 후 기존 글자의 전후와 이어붙인다.


Python

def solution(my_string, queries):
    
    for start, end in queries:
        my_string = my_string[:start] + my_string[start:end+1][::-1] + my_string[end+1:]
    
    return my_string

Java

class Solution {
    public StringBuilder solution(String my_string, int[][] queries) {
        StringBuilder str = new StringBuilder(my_string);
        
        for(int i = 0; i < queries.length; i++) {
            int start = queries[i][0];
            int end = queries[i][1];
            
            StringBuilder s = new StringBuilder(str.substring(start,end+1));
            
            s.reverse();
            str.replace(start,end+1,s.toString());

        }
        return str;
    }
}