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로 하나씩 받아와 이어 붙인 후 반환한다.

더 간단명료 하고 문제의 지시를 잘 따른 것 같아 좋은 코드 같다.
(내 코드는 실제 글자를 지우지 않고 건너뛰는 형식으로 이어 붙였다.)

 

+ Recent posts