Algorithm/Programmers

[Programmers] Lv.0 / 배열의 원소 삭제하기 / Java

unknownomad 2024. 3. 5. 06:41

문제

 

풀이

import java.util.*;
import java.util.stream.Collectors;

class Solution {
    public int[] solution(int[] arr, int[] delete_list) {
        Set<Integer> deleteSet = Arrays.stream(delete_list)
            .boxed()
            .collect(Collectors.toSet());
        
        List<Integer> result = Arrays.stream(arr)
            .filter(num -> !deleteSet.contains(num))
            .boxed()
            .collect(Collectors.toList());
        
        return result.stream()
            .mapToInt(Integer::intValue)
            .toArray();
    }
}
  • boxed()
    • to convert primitive types such as intlongdouble, etc., to their corresponding wrapper classes such as IntegerLongDouble, etc.
import java.util.stream.IntStream;

class Solution {
    public int[] solution(int[] arr, int[] delete_list) {
        return IntStream.of(arr)
            .filter(i -> !IntStream.of(delete_list).anyMatch(s -> s == i))
            .toArray(); 
    }
}

 

출처

https://school.programmers.co.kr/learn/courses/30/lessons/181844