[프로그래머스] 제일 작은 수 제거하기

2020. 6. 19. 19:15프로그래머스/LEVEL 1

import java.util.*;

class Solution {
    public int[] solution(int[] arr) {
        int[] answer = {};
       
        int minNum = arr[0];
        
        for(int i=1; i<arr.length; i++){
            minNum = Math.min(minNum,arr[i]);
        }
        
        List<Integer> answerList = new ArrayList<>();
        
        for(int i=0; i<arr.length; i++){
            if(arr[i]!=minNum){
                answerList.add(arr[i]);
            }
        }
        
        if(answerList.size()==0){
            answer = new int[1];
            answer[0] = -1;
        }else{
        
        answer = new int[answerList.size()];
        
        for(int i=0; i<answer.length; i++){
            answer[i] = answerList.get(i);
        }
        
        }
        return answer;
    }
}

1. minNum을 arr의 가장 첫번째 수로 지정한다음 배열을 돌면서 Math.min메소드를 통해 가장 최소값을 갖도록 만든다.

2. arr을 돌면서 가장 최소값이 아니라면 answerList에 넣는다.

3. answerList의 size가 0이면 최소값이 아닌 값이 arr에 없다는 의미이므로 answer에 -1

4. answerList의 size가 0이 아니라면 순서 유지하며 answer로 옮겨준다.