문자열 my_string과 정수 배열 indices가 주어질 때, my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
Level 0 문제 중에 가장 오래 헤매었다.
처음에는 단순하게 indices에 있는 배열에 순서대로 접근해서 remove하는 형식으로 진행하였다. 이 문제의 가장 큰 문제는 내가 값들을 지워갈수록 동적으로 할당된 리스트는 인덱스의 변경이 일어난다. 예를 들어..
HELLO 에서 내가 3번째,5번째 인덱스를 지우고 싶다면
대충 L 제거 후 O가 제거될 것이다.
그런데 리스트는 알아서 크기가 조정되어 가니까 3번째 인덱스를 지우고 난 후면
HELO 상태이고 그 상태에서 5번째 인덱스를 지워버리면? 인덱스 범위가 넘어가서 오류를 일으킨다..
import java.util.*;
class Solution {
public String solution(String my_string, int[] indices) {
String answer = "";
// 1. my_string을 쉽게 접근할 수 있도록 문자열을 배열로
String[] tmp = my_string.split("");
//2. indices를 돌면서 지워야 할 값들을 비워둔다.
for (int i = 0; i < indices.length; i++) {
tmp[indices[i]] = "";
}
//3. 문자열을 하나로 합친다(빈 공간은 붙어도 어짜피 포함X, 단순 "")
for (String x : tmp) {
answer += x;
}
return answer;
}
}