(Python, Java) 프로그래머스 - 제일 작은 수 제거하기

[문제 링크]

Python 풀이

def solution(arr):
    answer = arr
    answer.remove(min(arr))
    if len(answer) == 0:
        answer.append(-1)

    return answer

Java 풀이

class Solution {
    public int[] solution(int[] arr) {
        List<Integer> collect = Arrays.stream(arr).boxed().collect(Collectors.toList());
        Arrays.sort(arr);
        collect.remove(collect.indexOf(arr[0]));
        if (collect.size() == 0)
            return new int[]{-1};
        return collect.stream().mapToInt(Integer::intValue).toArray();
    }
}

배열을 List로 바꾸기 위해서는 stream으로 풀어주고 box 타입으로 변환시켜줘야 한다.
바로 asList로 해버리면 int[]가 제네릭으로 들어가버린다.

class Solution {
    public int[] solution(int[] arr) {
        if (arr.length==1)
            return new int[]{-1};
        int min = Arrays.stream(arr).min().getAsInt();
        return Arrays.stream(arr).filter(num -> num != min).toArray();
    }
}

© 2021. By Backtony