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

[프로그래머스] 문자열 뒤집기 자바 java

플래시🦥 2023. 8. 15.
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/181905

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

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


주어진 문자열에서 주어진 인덱스를 사용하여 일부만 뒤집은 결과를 반환해 주면 된다. 

해당 인덱스 범위의 문자를 뒤집은 문자로 바꾸어 주는 방법으로 문제를 풀었다. 

* 그런데 이렇게 하면 해당 인덱스의 범위가 아닌 곳에서 동일한 문자열을 가지고 있을 때 그 부분이 대신 변경되는 문제가 있을 수 있을 것 같다는 생각이 들어서 2가지 방법을 작성해 보았다. 

 

방법 1은 기존의 문자열과 같은 부분을 뒤집은 문자열과 바꾸는 방법이고,

방법 2는 인덱스를 사용하여 특정 부분과 앞 뒤 문자열을 더하는 방식이다. 

 

전체코드

class Solution {
    public String solution(String my_string, int s, int e) {
        StringBuilder sb = new StringBuilder();
        sb.append(my_string.substring(s,e+1));
        sb.reverse();
        //방법1
        // my_string= my_string.replace(my_string.substring(s,e+1),sb.toString());
        //방법2
        my_string= my_string.substring(0,s)+sb.toString()+my_string.substring(e+1);
        return my_string;
    }
}

 

728x90
반응형

댓글