Just Do IT!

[프로그래머스 level 0] 문자열 뒤집기 - 181905 (Java) 본문

코딩테스트 준비/프로그래머스

[프로그래머스 level 0] 문자열 뒤집기 - 181905 (Java)

MOON달 2024. 11. 17. 19:35
728x90
반응형

문제 설명

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


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

입출력 예
my_string s e result
"Progra21Sremm3" 6 12 "ProgrammerS123"
"Stanley1yelnatS" 4 10 "Stanley1yelnatS"

 

 

class Solution {
    public StringBuilder solution(String my_string, int s, int e) {
        StringBuilder answer = new StringBuilder();
        
        for (int i = 0; i < s; i++) {
            answer.append(my_string.charAt(i));
        }
        
        for (int i = e; i >= s; i--) {
            answer.append(my_string.charAt(i));
        }
        
        for (int i = e + 1; i < my_string.length(); i++) {
            answer.append(my_string.charAt(i));
        }
        
        return answer;
    }
}

 

https://daydream-sy.tistory.com/322

 

[Java] StringBuilder 사용하기

StringBuilder란?String은 불변(immutable) 객체라고 한다. 즉, 한 번 생성되면 변경할 수 없는 것이다.+ 연산자를 사용하여 연결할 수는 있지만, 이는 새로운 문자열 객체가 생성된다는 것을 의미한다.따

daydream-sy.tistory.com

 

이걸 참고해서 StringBuilder를 사용해서 새로운 객체를 생성한다.

 

  1. s 앞의 부분을 그대로 answer에 추가
  2. s에서 e까지의 구간을 뒤집어 추가
  3. e 뒤의 부분을 그대로 추가

 

이 과정을 거치기 위해 for문을 세 번 사용했다.

뭔가 다른 방법이 있을것 같은데 우선은 저렇게 해서 풀었다.

728x90