월별 & 주간 목표 혹은 느낀점/면접 예상 질문

StringBuilder

뽀또치즈맛 2025. 6. 9. 07:36

문자열의 리스트가 주어졌을 때 이 문자열들을 하나로 이어붙이려고 한다.

이떄의 수행 시간은 어떻게 되는가?

문제를 간단히 하기 위해 모든 문자열의 길이를 x라 하자.

같은 n개의 문자열이 주어졌다고 가정해보자.

 

문자열을 이어붙일 때마다 두 개의 문자열을 읽어 들인 뒤 문자를 하나하나 새로운 문자열에 복사해야 한다.

처음에는 x개, 두 번쨰는 2x개, 세 번째는 3x개 n번 쨰는 nx개의 문자열을 복사해야 한다.

 

따라서 총 수행 시간은 O(x + 2x + 3x + ... + nx)

즉, O(xn^2)이 된다.

 

StringBuilder는 이 문제를 해결해 줄 수 있다.

StringBuilder는 단순하게 가변 크기 배열을 사용하여 필요한 경우에만 문자열을 복사하게끔 해준다.

 

문자열, 배열, 일반적인 자료구조를 연습해 보는 가장 좋은 방법은 

자신만의 StringBuilder, HashTable, ArrayList를 구현해보는것이다.