문제 풀이/프로그래머스

프로그래머스 lv0 글자 이어 붙여 문자열 만들기

춘핑이 2023. 8. 10. 13:31

문제

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

내풀이

단순하게 문자열 연산을 했다.

 public String solution(String my_string, int[] index_list) {
      String answer = "";
      String[] strArr = my_string.split("");
      for (int i = 0; i < index_list.length; i++) {
          answer += strArr[index_list[i]];
      }
      return answer;
  }

그런데 연산시간이 너무 오래걸린다. 다른 사람 답을 확인해보았다.

다른 사람 풀이

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

StringBuilder를 사용했다. String 덧셈연산은 매번 String객체를 새로만들고 넣고 새로만들고 넣고 하느라 '당연히' 연산이 오래걸린다.
반복문안에서 만들때는 StringBuilder를 애용해보자.

단순한 문제지만 하나씩 다시 쌓아간다.
쉬운 문제부터 쭉쭉 다시 풀어나가보자.