Algorithms/프로그래머스

[프로그래머스] '문자열 뒤집기' - Java

LEFT 2023. 2. 22. 16:04

<문제 제시>

문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.

<예시 입출력>


<문제 해결 과정>

문자열 뒤집기는 첫번째 인덱스의 문자와 끝 인덱스의 문자를 바꾸고 인덱스를 바꾼 후 또 그 인덱스에서의 

바꾸기가 이루어지면 되는 것이다. lt 라는 변수와 rt라는 변수를 두어 해결하려했지만, 첫번째인덱스는 반복문에서 'i'라는 변수로 쉽게 접근이 가능하기에 rt변수만 두었다. 

int rt = my_string.length() - 1;

rt는 주어진 my_string의 끝문자를 표시한다. .length() - 1

처음에는

Try 1) StringIndexOutOfBoundsException 오류가 발생하였다. 문자열의 인덱스를 참조하는 과정에서 

범위 지정이 잘못된 것 같았다. 

Solution 1) " ArrayList " 를 활용하여 해결

또, Character 자료형의 ArrayList를 선언 후 인덱스 rt를 감소시키며 각 문자를 거꾸로 넣어준다.

for(int i = 0; i < my_string.length(); i++){
    move.add(i, my_string.charAt(rt));
    rt--;
}

.get()으로 answer에 문자들을 누적해서 더해주면 거꾸로 바뀐 문자열이 반환된다.


<전체코드>

import java.util.ArrayList;
import java.util.List;

public class flip_array {

	public static String solution(String my_string) {
        String answer = "";
        List<Character> move = new ArrayList<>();
        
        int rt = my_string.length() - 1;
        
        for(int i = 0; i < my_string.length(); i++){
        	move.add(i, my_string.charAt(rt));
        	rt--;
        }
        
        for(int i = 0; i < move.size(); i++) {
        	answer += move.get(i);
        }
        
        return answer;
    }
	
	
	public static void main(String[] args) {
		String my_string = "jaron";
		System.out.println(solution(my_string));
	}

}

테스트케이스로 'jaron'을 넣어 테스트해보았다. 정상적으로 처리되었고, noraj 가 반환될 수 있었다.


문제링크)
https://school.programmers.co.kr/learn/courses/30/lessons/120822

 

프로그래머스

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

programmers.co.kr