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

2021. 1. 8. 16:52프로그래밍/알고리즘

반응형

💁‍♀️ 링크

programmers.co.kr/learn/courses/30/lessons/12935

 

📃 문제 

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.

예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

 

🐾 문제풀이

우선 제일 작은 수를 찾는다.

앞서 선언한 tempList에 제일 작은 수를 제외한 요소들을 추가한다.

tempList 요소의 수가 0이면 -1을 채우고 리턴한다.

요소의 수가 0이 아니라면 tempList에 있는 요소들을 answer에 추가한다.

 

💻 코드

import java.util.*;
class Solution {
    public int[] solution(int[] arr) {
        ArrayList<Integer> tempList = new ArrayList<>();
        int min = Integer.MAX_VALUE;
        
        // 제일 작은 수 찾기
        for(int i=0; i<arr.length; i++){
            if(arr[i]< min) min = arr[i];
        }
        
        // 제일 작은 수를 제외하고 tempList에 추가해준다.
        for(int i=0; i<arr.length; i++){
            if(arr[i] != min) tempList.add(arr[i]);
        }
        
        // tempList의 요소의 수가 0 이면 [-1] return
        if(tempList.size() == 0) return new int[]{-1};
		
        // tempList의 요소를 answer에 넣어준다.
        int[] answer = new int[tempList.size()];
        for(int i=0; i<tempList.size(); i++){
            answer[i] = tempList.get(i);
        }
        return answer;
    }
}

 

 

 

반응형