본문 바로가기
개발/개발 공부

[프로그래머스] 코딩테스트 입문 : 문자열 뒤집기

by 하모예 2024. 9. 2.

| 문제

문자열 my_string이 매개변수로 주어집니다.

my_string을 거꾸로 뒤집은 문자열을 return 하도록 solution 함수를 완성해 주세요.

| 제한 사항

  • 1 ≤  my_string의 길이 ≤ 1,000

| 입출력 예

my_string return
"jaron" "noraj"
"bread" "daerb"

| 풀이 1

public String solution01(String my_string) {
    String[] arr = my_string.split("");
    String[] reverseArr = new String[arr.length];
    for(int i = arr.length-1,j=0 ; i >= 0 ; i--, j++){
    reverseArr[j] = arr[i];
    }
    return String.join("",reverseArr);
}

| 풀이 2

public String solution02(String my_string) {
    StringBuilder sb = new StringBuilder();
    sb.append(my_string);
    sb.reverse();
    return sb.toString();
}

 

| 해설

문자열을 다루는 문제는 대부분 문자열을 배열로 잘라서 다루는 것에서부터 시작하는 것 같아요.

문자열을 다루는 문제를 만나면 일단 문자열부터 자르고 생각하게 될 정도로요.

문자열 뒤집기 문제도 마찬가지로 배열로 잘라서 작업할 수 있고,

거기다가 특별한 문자열 StringBuilder도 사용할 수도 있습니다.

StringBuilder는 문자열 형태의 데이터를 더 유연하게 사용할 수 있도록 도와줍니다. 

조금 더 멋진 말로 String은 immutable 하고, StringBuilder는 mutable 하다고 말해요.

딱딱하게 굳어있던 문자열을 StringBuilder로써 다루면 말랑말랑 유연해진답니다. 

그래서 마치 배열 대신 컬렉션을 사용하면 코드를 단순화할 수 있었던 것처럼

String 대신 StringBuilder를 사용하면 다양한 작업을 쉽게 구현할 수 있어요. 

대표적인 것이 문자열을 뒤집는 것이고, 이 문제에서 StringBuilder를 사용한 이유입니다.

댓글