본문 바로가기
Coding Test

230921 문자열 뒤집기 - Level 0

by mmm- 2023. 9. 21.

문제 설명

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

 

제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000

 

입출력 예

 

입출력 설명

입출력 예 #1

  • my_string이 "jaron"이므로 거꾸로 뒤집은 "noraj"를 return합니다.

입출력 예 #2

  • my_string이 "bread"이므로 거꾸로 뒤집은 "daerb"를 return합니다.

코드

class Solution {
    public String solution(String my_string) {
        String answer = "";
        char[] string_array = my_string.toCharArray(); // String을 문자형배열로 변환
        char[] temp = new char[string_array.length]; // 뒤집힌 문자를 만들어줄 문자형배열 생성
        
        for(int i=0; i<string_array.length; i++) { // 반복문을 통해
             temp[i] = string_array[string_array.length-(i+1)]; // 문자 뒤집기
        }
        answer = new String(temp); // 문자형배열을 문자열로 변환
        
        return answer;
    }
}

 

풀이

toCharArray()를 이용해 문자열을 문자형배열로 변환해준다. 그리고 뒤집힌 문자를 저장할 temp라는 문자형배열을 생성해준다. string_array의 길이만큼 반복하여 string_array의 마지막번째 자리부터 0번째 자리의 문자들을 temp의 0번째자리부터 마지막번째 자리까지 하나씩 넣어준다. 그 후 문자열인 answer에 거꾸로 뒤집은 문자를 넣어주기 위해 문자형배열을 문자열로 변환한다.

 


다른 코드와 풀이

아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교하고 참고하기 위해 가져왔다.

 

import java.util.*;

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

        return sb.toString();
    }
}

StringBuilder를 이용해 버퍼에 my_string을 추가하고 reverse()를 통해 문자를 뒤집은 후, 문자열로 변환하여 리턴한다.

(같은 방법으로 StringBuffer를 이용해서 코드를 작성하는 것도 가능하다.)


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

        for(int i=my_string.length()-1; i>=0; i--){
            answer+=my_string.charAt(i);
        }

        return answer;
    }
}

my_string 자체를 문자형배열로 변환하는 것이 아닌, 각각의 문자로 변환하여 answer에 추가해준다.


정리

StringBuilder() : 기존의 데이터에 더하는 방식을 사용하기 때문에 속도도 빠르며 상대적으로 부하가 적음. (문자열을 더하는 상황에서 사용하면 좋음)

  차이점 공통점
Buffer - 멀티스레드 환경에서 사용하기 좋음
- 동기화 지원
기존 버퍼의 크기를 늘려주며 유연하게 동작
Builder - 단일스레드 환경에서 사용하기 좋음

(Builder도 동기화가 사용이 가능하지만 동기화 처리로 인해 성능이 낮아짐)

'Coding Test' 카테고리의 다른 글

230922 점의 위치 구하기 - Level 0  (0) 2023.09.22
230921 가위 바위 보 - Level 0  (0) 2023.09.21
230920 배열 뒤집기 - Level 0  (0) 2023.09.20
230920 배열 두 배 만들기 - Level 0  (0) 2023.09.20
230919 몫 구하기 - Level 0  (0) 2023.09.19