까먹을수 있는 문법 정리_1

2023. 8. 25. 17:36주인장 : 태하팍/코테

반응형

내용과는 무관함 ㅋㅋ

1) Arrays.sort는 int[]는 정렬이 안된다. Integer여야만 한다. 체크~
    Arrays.sort의 default 정렬은 오름차순이다.(1->2->3 등 점점 올라가는)
    내림차순으로 해주려면 Comparator.reverseOrder()를 넣어줘야한다.

2) Arrays.asList로 만든 List는 remove가 동작하지 않는다. 동작하려면 아래와 같이 생성해야한다.
    List<String> tempList = new ArrayList(Arrays.asList(tempArr)); 

3) List를 String으로 표현하려면?
    String.join()을 사용하면 된다.

import java.util.*;
import java.util.Arrays;
class Solution {
    public String solution(String my_string, int[] indices) {
        String answer = "";        
        // String -> List        
        String[] tempArr = my_string.split("");        
        List<String> tempList = new ArrayList(Arrays.asList(tempArr));        
        
        Integer[] integerArr = Arrays.stream(indices).boxed().toArray(Integer[]::new);        
        Arrays.sort(integerArr, Comparator.reverseOrder());
        
        
        for(Integer idx:integerArr){                       
            tempList.remove((int)idx);            
        }
        
        answer = String.join("",tempList);           
        
        return answer;
    }
}

위의 문제는 문자열에서 indices에 걸리는 문자들을 빼버리고 그 나머지 문자열을 리턴하는 문제인데
리스트에서 remove를 사용해서 빼버리면 간단하다는 생각이 가장 먼저 들었다.
다른 사람들 소스를 보니 다른 방법도 역시나 가능하다.
이래서 코딩은 재밌는거 같다 ㅎㅎ

반응형