Java 코딩 테스트: StringBuilder 활용 사례 모음


1. 왜 StringBuilder를 쓸까?

코딩 테스트에서 문자열을 다룰 때는 String보다 StringBuilderStringBuffer를 활용하는 것이 성능 면에서 매우 유리하다.

1.1 String은 불변 (immutable)

1.2 StringBuilder는 가변 (mutable)

📌 참고: StringBuildersynchronized아닌 대신 더 빠르다. 멀티스레드가 아니면 StringBuffer보다 성능상 유리하다.


2. 자주 나오는 활용 패턴

2.1 문자열 뒤집기 (문제 유형: 팰린드롬 판단, 좌우 비교)

String str = "hello";
String reversed = new StringBuilder(str).reverse().toString();
System.out.println(reversed);  // 출력: "olleh"

2.2 대량 문자열 이어붙이기 (문제 유형: 문자열 압축, 변환 등)

StringBuilder sb = new StringBuilder();
for (char c : arr) {
    sb.append(Character.toUpperCase(c)).append(", ");
}
String result = sb.toString();

2.3 조건에 따라 문자열 조립 (문제 유형: 포맷팅, 규칙 변환)

StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++) {
    sb.append("[").append(i).append("]");
    if (i < 5) sb.append("-");
}
System.out.println(sb.toString());  // 출력: [1]-[2]-[3]-[4]-[5]

2.4 문자열 일부 제거 (문제 유형: 특정 문자 제거, 구간 삭제)

StringBuilder sb = new StringBuilder("abcdef");
sb.delete(2, 4);  // 인덱스 2~3 삭제 → "abef"
System.out.println(sb);

3. 코딩 테스트 팁

상황

추천 도구

이유

문자열을 자주 수정/누적할 때

StringBuilder

가변 객체, 빠른 속도

문자열을 뒤집을 때

StringBuilder.reverse()

메서드 하나로 간단 처리

멀티스레드 고려 필요 없음

StringBuilder

동기화 없음 → 더 빠름

🧠 참고: 코테에서 StringBuilder를 쓰는 것이 대부분 OK, StringBuffer는 멀티스레드 환경에서만 고려


✅ 마무리 요약

코테에서 성능이 중요한 대형 문자열 문제에서는 StringBuilder는 최고의 무기





Revision #8
Created 20 May 2025 04:48:50 by Dain
Updated 20 May 2025 06:38:20 by Dain