Solution 1) 내 풀이
import java.util.ArrayList;
import java.util.List;
class Solution {
public String solution(String my_string, int[] indices) {
char[] charArray = my_string.toCharArray();
List<Integer> list = new ArrayList<>();
String answer = "";
for (int i = 0; i < indices.length; i++) {
list.add(indices[i]);
}
for (int i = 0; i < charArray.length; i++) {
if (!list.contains(i)) {
answer += charArray[i];
}
}
return answer;
}
}
Solution 2) 다른 사람의 풀이
class Solution {
public String solution(String my_string, int[] indices) {
String answer = "";
String[] tmp = my_string.split("");
for (int i = 0; i < indices.length; i++) {
tmp[indices[i]] = "";
}
for (String x : tmp) {
answer += x;
}
return answer;
}
}
굳이 char 배열로 만들지 않고, split으로 string 배열을 만든 뒤 실제 지워야할 idx의 글자를 지운다.
이후 지워야할 글자가 지워진 string 배열을 for each로 하나씩 받아와 이어 붙인 후 반환한다.
더 간단명료 하고 문제의 지시를 잘 따른 것 같아 좋은 코드 같다.
(내 코드는 실제 글자를 지우지 않고 건너뛰는 형식으로 이어 붙였다.)