최근 글 ✨

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

문제 설명

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

 

제한사항

  • my_string은 영소문자로만 이루어져 있습니다.
  • 1 ≤ my_string의 길이 ≤ 1,000
  • queries의 원소는 [s, e]의 형태로 0 ≤ s ≤ e < my_string의 길이를 만족합니다.
  • 1 ≤ queries의 길이 ≤ 1,000

 

입출력 예

 

코드

class Solution {
    public String solution(String my_string, int[][] queries) {
        StringBuilder answer = new StringBuilder(my_string);
        for(int[] q:queries){
            StringBuilder sb = new StringBuilder(answer.substring(q[0],q[1]+1));
            sb.reverse();
            answer.replace(q[0],q[1]+1,sb.toString());
        }
        return answer.toString();
    }
}

StringBuilder에서 reverse 사용했던걸 기억해서 생각보다 빨리 풀린 문제

처음에 for문으로 돌리면서 queries에서 i를 어떻게 처리하면 좋을까 생각했는데 그냥 queries에서 하나씩 받아오면 되는걸 복잡하게 생각하고 있었다.

 

문제 출처

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