[프로그래머스] Lv.0 글자 이어 붙여 문자열 만들기

이다혜·2023년 10월 18일
0

프로그래머스

목록 보기
3/61
post-thumbnail

📎 문제 출처

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

📌 문제 설명

문자열 my_string과 정수 배열 index_list가 매개변수로 주어집니다. my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

❓ 풀이 방법

1. 문자열 연산자(+) 사용

이 방법은 문자열을 더할 때마다 새로운 문자열을 생성합니다. 자바에서는 문자열은 불변하기 때문에 문자열을 더할 때마다 기존 문자열을 복사하고, 새로운 문자열을 생성합니다. 이 때문에 문자열의 길이가 길어질수록 문자열을 더하는 데 걸리는 시간이 기하급수적으로 증가할 수 있습니다.

2. StringBuilder 사용

StringBuilder는 가변적인 문자열을 처리하는 클래스입니다. 문자열을 더할 때마다 새로운 객체를 생성하지 않고 내부 버퍼에 문자를 추가하므로 문자열 연산의 성능이 훨씬 향상됩니다.

💻 Code

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;
    }
}

0개의 댓글