반응형
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를 사용해서 빼버리면 간단하다는 생각이 가장 먼저 들었다.
다른 사람들 소스를 보니 다른 방법도 역시나 가능하다.
이래서 코딩은 재밌는거 같다 ㅎㅎ
반응형
'Developer : 태하팍 > 코딩 테스트' 카테고리의 다른 글
콜라츠 수열 - error: incompatible types: bad return type in lambda expression .mapToInt(i -> i) (0) | 2023.08.16 |
---|