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

KIMYEONGJUN·2026년 6월 4일
post-thumbnail

문제

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

문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.

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

solution 메서드는 입력 문자열 my_string과 인덱스 s, e를 매개변수로 받는다.
my_string.substring(0, s)는 문자열의 시작부터 s 직전까지 부분 문자열을 추출한다.
이를 front에 저장한다.
my_string.substring(s, e + 1)는 인덱스 s부터 e까지의 부분 문자열을 추출한다.
이를 middle에 저장한다.
my_string.substring(e + 1)는 e 다음 인덱스부터 끝까지 부분 문자열을 추출한다.
이를 back에 저장한다.
new StringBuilder(middle).reverse().toString()는 middle 문자열을 뒤집는다.
이를 reversedMiddle에 저장한다.
최종적으로 front + reversedMiddle + back을 합쳐서 원하는 결과 문자열을 반환한다.
main 메서드는 두 가지 테스트 케이스를 실행한다.
첫 번째 문자열 "Progra21Sremm3"에서 인덱스 6부터 12까지의 구간을 뒤집어 "ProgrammerS123"을 출력한다.
두 번째 문자열 "Stanley1yelnatS"는 인덱스 4부터 10까지 뒤집었지만 원래 문자열과 같아 "Stanley1yelnatS" 그대로 출력된다.

코드로 구현

class Solution {
    public String solution(String my_string, int s, int e) {
        String front = my_string.substring(0, s);
        String middle = my_string.substring(s, e + 1);
        String back = my_string.substring(e + 1);
        String reversedMiddle = new StringBuilder(middle).reverse().toString();
        return front + reversedMiddle + back;
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 문자열 뒤집기
public class Main40 {
    public static String solution(String my_string, int s, int e) {
        String front = my_string.substring(0, s);
        String middle = my_string.substring(s, e + 1);
        String back = my_string.substring(e + 1);
        String reversedMiddle = new StringBuilder(middle).reverse().toString();
        return front + reversedMiddle + back;
    }

    public static void main(String[] args) {
        String myString1 = "Progra21Sremm3";
        int s1 = 6, e1 = 12;
        String result1 = solution(myString1, s1, e1);
        System.out.println(result1);  // ProgrammerS123

        String myString2 = "Stanley1yelnatS";
        int s2 = 4, e2 = 10;
        String result2 = solution(myString2, s2, e2);
        System.out.println(result2);  // Stanley1yelnatS
    }
}

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

마무리

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

profile
Junior backend developer

0개의 댓글