[프로그래머스 스쿨] 코딩테스트 연습 기초 - 문자열 뒤집기

김현정·2025년 3월 6일
0

문제 설명

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

입출력 예 설명

입출력 예 #1
my_string이 "jaron"이므로 거꾸로 뒤집은 "noraj"를 return합니다.

입출력 예 #2
my_string이 "bread"이므로 거꾸로 뒤집은 "daerb"를 return합니다.

기본 코드

class Solution {
    public String solution(String my_string) {
        String answer = "";
        return answer;
    }
}

내가 구현한 코드

import java.util.Arrays;

class Solution {
    public String solution(String my_string) {
        String answer = "";
        String[] arr = Arrays.stream(my_string.split("")).toArray(String[] :: new);
        for(int i = arr.length - 1; i >= 0; i--) {
            answer += arr[i];
        }
        return answer;
    }
}

다르게 구현한 코드

class Solution {
    public String solution(String my_string) {
    
        StringBuilder sb = new StringBuilder(my_string);
        String answer = sb.reverse().toString();

        return answer;
    }
}
class Solution {
    public String solution(String my_string) {

        StringBuffer sb = new StringBuffer(my_string);
        String answer = sb.reverse().toString();

        return answer;
    }
}

문제 해결

문자형인 arr 배열을 새로 선언함. 배열을 스트림으로 변환하여 my_string.split("")으로 문자열을 하나씩 분리하고 .toArray(String[] :: new)를 통해 다시 배열로 변환한다.
for문에서 my_string의 문자열을 뒤짚어야하기에 초기 i값을 arr 배열 길이 -1 (인덱스 값을 같게하기 위해)을 하고 i를 하나씩 감소하면서 answer 문자형에 arr 원소를 하나씩 넣는다.(거꾸로 뒤에서 붙어 넣기)

알게된 점

  1. StringBuilder 클래스는 문자열을 하나씩 모아서 문자열을 만들어주는 클래스이다.
  2. 변수.reverse()는 해당 문자 전체를 뒤집는 메소드이다.
  3. StringBuffer 클래스는 인스턴스 값을 수정하거나 추가할 수 있다.
    -> 내부적으로 독립적인 공간 버퍼(Buffer)를 가져서 16개의 문자를 저장할 수 있는 크기가 생성되어 자유롭게 수정이 가능함

0개의 댓글