Coding Test/Java

[프로그래머스 / Java] Lv.0 문자열 뒤집기

annovation 2025. 1. 5. 17:56

Question

https://school.programmers.co.kr/learn/courses/30/lessons/120822

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


Code

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

 

 

* StringBuilder VS StringBuffer

가변 문자열 클래스로, 문자열을 효율적으로 조작할 수 있게 설계된 클래스입니다. 둘의 주요 차이점은 스레드 안전성성능입니다. 

 

1. StringBuilder

  • 스레드 비안전(Not thread-safe)
    • StringBuilder는 모든 메서드에 대해 동기화(synchronized)되지 않았기 때문에 멀티스레드 환경에서 안전하지 않습니다.
    • 한 스레드만 사용할 경우에만 안전합니다.
  • 성능
    • 동기화가 없으므로, 단일 스레드 환경에서는 StringBuffer보다 더 빠릅니다.

2. StringBuffer

  • 스레드 안전(Thread-safe)
    • StringBuffer는 모든 메서드에 대해 동기화(synchronized)가 되어 있어, 멀티스레드 환경에서 안전합니다.
    • 여러 스레드가 동시에 같은 StringBuffer 객체를 수정해도 문제가 없습니다.
  • 성능
    • 동기화 작업이 추가되므로, 단일 스레드 환경에서는 성능이 다소 느립니다.

* 요약

  • 멀티스레드 환경 : StringBuffer를 사용
  • 단일 스레드 환경 : StringBuilder를 사용

→ 주어진 코드는 단일 스레드 환경이므로, StringBuilder가 더 효율적입니다.

반응형