본문 바로가기
Coding Test/프로그래머스

[Java] 문자열 뒤집기

by 노 코딩 노 라이프 2024. 3. 17.

문제설명

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

 

제한사항

  • my_string은 숫자와 알파벳으로만 이루어져 있습니다.
  • 1 ≤ my_string의 길이 ≤ 1,000
  • 0 ≤ s  e < my_string의 길이

입출력 예

 

입출력 예 #1

  • 예제 1번의 my_string에서 인덱스 6부터 인덱스 12까지를 뒤집은 문자열은 "ProgrammerS123"이므로 "ProgrammerS123"를 return 합니다.

입출력 예 #2

  • 예제 2번의 my_string에서 인덱스 4부터 인덱스 10까지를 뒤집으면 원래 문자열과 같은 "Stanley1yelnatS"이므로 "Stanley1yelnatS"를 return 합니다.

코드 설명

StringBuilder answer = new StringBuilder();

StringBuilder 클래스를 사용하여 결과 문자열을 저장할 객체 answer를 생성합니다.

StringBuilder str = new StringBuilder(my_string);

my_string을 사용하여 새로운 StringBuilder 객체 str을 생성합니다. 

answer.append(str.substring(0, s))

str에서 시작 인덱스 0부터 s 직전까지의 부분 문자열을 answer에 추가합니다.

.append((new StringBuilder(str.substring(s, e + 1)).reverse()))

str에서 인덱스 s부터 e까지의 부분 문자열을 추출한 후, StringBuilder로 변환하여 뒤집습니다. 그리고 뒤집은 문자열을 answer에 추가합니다.

.append(str.substring(e + 1));

str에서 인덱스 e + 1부터 끝까지의 부분 문자열을 answer에 추가합니다.

return answer.toString();

answer를 문자열로 변환하여 반환합니다.


소스코드&결과

코드

class Solution {
    public String solution(String my_string, int s, int e) {
        StringBuilder answer = new StringBuilder();
        StringBuilder str = new StringBuilder(my_string);
        
 
        answer.append(str.substring(0, s)) 
              .append((new StringBuilder(str.substring(s, e + 1)).reverse()))
              .append(str.substring(e + 1));
              
        return answer.toString();
    }
}

결과