[프로그래머스][Java]뒤집힌 문자열 - 120822

·2025년 9월 8일
0

코딩테스트

목록 보기
1/16

[level 0] 뒤집힌 문자열 - 120822

문제 링크

문제 설명

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


제한사항
  • 1 ≤ my_string의 길이 ≤ 1,000

입출력 예
my_string return
"jaron" "noraj"
"bread" "daerb"

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

✅나의 문제 풀이

StringBuffer와 reverse()를 활용한 풀이

class Solution {
    public String solution(String my_string) {
        StringBuffer sb = new StringBuffer(my_string);
        String answer = sb.reverse().toString();
        return answer;
    }
}
  • 처음에는 배열로 하나하나 뒤집어서 저장하는걸 생각했는데, 관련 함수가 있지 않나 찾아보다가 reverse()라는 함수를 찾아서 적용해보았다.
class Solution {
    public String solution(String my_string) {
        return new StringBuffer(my_string).reverse().toString;
    }
}
  • 한줄 요약 버전

✅다른 사람의 문제 풀이 및 참고할 문제풀이

1. 배열을 활용한 풀이

class Solution {
    public String solution(String my_string) {
        String answer = "";
        for (int i = my_string.length() - 1; 0 <= i; i--){
            answer += my_string.charAt(i);
        }
        return answer;
    }
}
  • 위 코드가 처음에 생각했던 my_string길이 만큼 반복문을 실행시켜서 String 변수에 하나하나 저장하는 코드였는데 이 방식은 내부에서 매번 새로운 String 객체를 만들어 옮기기 때문에 비효율적이고 느리다고한다.

2. StringBuilder

public String solution(String my_string) {
    return new StringBuilder(my_string).reverse().toString();
}
  • StringBuffer외에도 StringBuilder라는게 있었다.
  • StringBuffer는 메서드에 synchronized를 적용해서 스레드에서 안전하게 사용할 수 있고, StringBuilder는 비동기이므로 단일 스레드에서 더 빠르다.
  • 알고리즘 문제나 대부분의 애플리케이션 코드에서는 StringBuilder를 권장한다고 한다.
profile
배우고 기록하며 성장하는 백엔드 개발자입니다!

0개의 댓글