https://school.programmers.co.kr/learn/courses/30/lessons/181915
문자열 my_string과 정수 배열 index_list가 매개변수로 주어집니다. my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
1. 문자열 연산자(+) 사용
이 방법은 문자열을 더할 때마다 새로운 문자열을 생성합니다. 자바에서는 문자열은 불변하기 때문에 문자열을 더할 때마다 기존 문자열을 복사하고, 새로운 문자열을 생성합니다. 이 때문에 문자열의 길이가 길어질수록 문자열을 더하는 데 걸리는 시간이 기하급수적으로 증가할 수 있습니다.
2. StringBuilder 사용
StringBuilder는 가변적인 문자열을 처리하는 클래스입니다. 문자열을 더할 때마다 새로운 객체를 생성하지 않고 내부 버퍼에 문자를 추가하므로 문자열 연산의 성능이 훨씬 향상됩니다.
1. 문자열 연산자(+) 사용한 코드
class Solution {
public String solution(String my_string, int[] index_list) {
StringBuilder sb = new StringBuilder();
for (int idx : index_list)
sb.append(my_string.charAt(idx));
return sb.toString();
}
}
2. StringBuilder 사용한 코드
class Solution {
public String solution(String my_string, int[] index_list) {
String answer = "";
for(int i : index_list) {
answer += my_string.charAt(i);
}
return answer;
}
}