arr에서 가장 작은 수를 찾는 방법은 Arrays의 stream의 min메소드를 사용하여 getAsInt로 값을 min에 담습니다.
결과를 담을 answer는 List로 초기화를 하고
for문을 이용하여 arr의 크기만큼 순회하여 arr 원소 값을 비교할 수 있게 해줍니다.
if문을 이용하여 arr의 가장 작은 수가 담긴 min 값보다 arr의 원소 중에서 큰 값이라면 answer에 담도록 하고,
else if문을 이용하여 arr의 크기가 1보다 작거나 같으면 answer에 -1을 담도록 하게 했습니다.
package com.namji.codingtest.level0;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RemoveSmallestNumber {
public static void main(String[] args) {
/*
* 정수 배열 arr이 매개변수로 주어집니다.
* arr의 원소 중에서 가장 작은 수를 제거한 배열을 출력하는 문제입니다.
* 배열의 크기가 1이하면 -1을 출력합니다.
* [4,3,2,1] > [4,3,2] / [10] > [-1]
*/
int[] arr = {10};
int min = Arrays.stream(arr).min().getAsInt();
List<Integer> answer = new ArrayList<Integer>();
for (int i = 0; i < arr.length; i++) {
if (arr[i] > min) {
answer.add(arr[i]);
} else if (arr.length <= 1) {
answer.add(-1);
}
}
System.out.println(answer);
}
}
프로그래머스 코드
import java.util.*;
class Solution {
public List solution(int[] arr) {
int min = Arrays.stream(arr).min().getAsInt();
List<Integer> answer = new ArrayList<Integer>();
for (int i = 0; i < arr.length; i++) {
if (min < arr[i]) {
answer.add(arr[i]);
} else if (arr.length <= 1) {
answer.add(-1);
}
}
return answer;
}
}