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

KIMYEONGJUN·2026년 5월 26일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

Main32 클래스는 자바 애플리케이션 진입점인 main 메서드를 포함한다.
main 메서드 안에서 문제 해결용 Solution 객체를 생성한다.
예시의 my_string과 queries 배열을 정의한다.
solution 메서드를 호출해 결과 문자열을 얻는다.
결과를 System.out.println으로 출력하여 콘솔에서 확인할 수 있다.
Solution 클래스의 solution 메서드는 StringBuilder를 이용해 입력 문자열을 가변적으로 처리한다.
각 쿼리 [s, e] 구간의 문자열을 양끝 문자부터 교환하여 뒤집는다.

코드로 구현

class Solution {
    public String solution(String my_string, int[][] queries) {
        StringBuilder sb = new StringBuilder(my_string);

        for (int[] query : queries) {
            int s = query[0];
            int e = query[1];
            
            while (s < e) {
                char temp = sb.charAt(s);
                sb.setCharAt(s, sb.charAt(e));
                sb.setCharAt(e, temp);
                s++;
                e--;
            }
        }

        return sb.toString();
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 문자열 여러 번 뒤집기
public class Main32 {
    public static void main(String[] args) {
        Solution5 solution5 = new Solution5();

        String my_string = "rermgorpsam";
        int[][] queries = { {2, 3}, {0, 7}, {5, 9}, {6, 10} };

        String result = solution5.solution(my_string, queries);
        System.out.println(result);  // "programmers" 출력 예상
    }
}

class Solution5 {
    public String solution(String my_string, int[][] queries) {
        StringBuilder sb = new StringBuilder(my_string);

        for (int[] query : queries) {
            int s = query[0];
            int e = query[1];

            while (s < e) {
                char temp = sb.charAt(s);
                sb.setCharAt(s, sb.charAt(e));
                sb.setCharAt(e, temp);
                s++;
                e--;
            }
        }
        return sb.toString();
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글