코딩테스트/JAVA

[JAVA/프로그래머스] 소수 찾기

할루솔이 2023. 7. 12. 21:36
반응형

문제 설명
문자열 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 합니다.


class Solution {
    public String solution(String my_string, int s, int e) {
        String answer = "";
        StringBuilder sb = new StringBuilder(new String(my_string.substring(s,e+1)));
        sb.reverse();
        
        for(int i=0;i<my_string.length();i++){
            if(i != s){
                answer += my_string.charAt(i);
            }else{
                answer += sb.toString();
                i = e;
            }
        }
        return answer;
    }
}

 

간단하게 문자열을 뒤집어주기 위해서 StringBuilder를 사용한다. 

문자열 나누는 건 substring()사용했는데

e+1을 해준 이유!

substring(1, 10) 는 1부터 10 인덱스 이전까지의 문자열이 들어가게 된다.

그래서 e까지 넣어주기 위해 +1을 해주었다.

 

reverse() 사용해서 문자열 뒤집어주고 

반복문 사용해서 i가 s 아닐때 answer에 넣어준다.

 

i가 s와 같으면 charAt()이 아니라 뒤집어준 문자열을 넣어주고 

i의 값을 e로 만들어준다!

반응형