TIL/알고리즘

[JAVA] 프로그래머스 | 181905 문자열 뒤집기

쑤키다요 2025. 4. 4. 12:42

📝 TIL

- [181905] 문자열 뒤집기

 

제한사항

my_string은 숫자와 알파벳으로만 이루어져 있습니다.

1 ≤ my_string의 길이 ≤ 1,000

0 ≤ s ≤ e < my_string의 길이

 

 

입출력 예

입출력 예#1

my_string s e result
"Progra21Sremm3" 6 12 "ProgrammerS123"
"Stanley1yelnatS" 4 10 "Stanley1yelnatS"

 


🦔 설계 및 시도

지난번에 문자열 여러번 뒤집기 문제를 풀어서

이번에는 조금 수월하게 풀었다.

 

다만 지난번에 for문을 사용했다면, 이번에는 공부하다 알게된 reverse를 쓰기로 했다.

reverse는 method라 사용에는 크게 어렵지 않았으나,

String의 메서드인지 StringBuffer의 메서드인지 헷갈렸다

결론은 StringBuffer의 메서드!

 

 

🔥 풀이에 사용된 개념

substring(int start, int end)

- 문자열 일부를 추출할 때 사용함(부분 문자열)

- start부터 end-1 까지의 문자열을 반환(주의 : end는 포함하지 않는다!)

 

StringBuffer.reverse()

- StringBuffer에 저장된 문자열을 뒤집어줌


 

💡 풀이 소스 코드

 

시간복잡도 : O(n) 

공간복잡도 : O(n)

 

class Solution {
    public String solution(String my_string, int s, int e) {
        String answer = "";
        StringBuffer sub2 = new StringBuffer(my_string.substring(s, e+1));
      
        answer = my_string.substring(0,s) + sub2.reverse().toString() 
        	+ my_string.substring(e+1, my_string.length());
    
        return answer;
    }
}

 


🚀 새로 배운 내용

- 문자열을 전부 뒤집을 땐 reverse를 사용하자

 

 


😺  느낀점

- 한 번 풀었다고 넘기지말고, 개념이나 내용을 잘 확인하자

 

 


*소스 코드는 다음 깃허브에 올라옵니다 -
 https://github.com/s0ooo0k/Algorithm_Study

 

GitHub - s0ooo0k/Algorithm_Study: Algorithm Study 문제 및 풀이

Algorithm Study 문제 및 풀이. Contribute to s0ooo0k/Algorithm_Study development by creating an account on GitHub.

github.com