끄적끄적 코딩일지

[Programmers]제일 작은수 제거하기(난이도:★★★) 본문

알고리즘

[Programmers]제일 작은수 제거하기(난이도:★★★)

BaekGyuHyeon 2022. 5. 16. 19:33

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

 

코딩테스트 연습 - 제일 작은 수 제거하기

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

programmers.co.kr

class Solution {
    public int[] solution(int[] arry) {
        int[] answer = {};
        if(arry.length == 1)
            return new int[]{-1};
        else{
            answer = new int[arry.length-1];
            answer[0] = -1;
            int idx = 0;
       
            int tmp = Integer.MAX_VALUE;
             // 제일 작은수 제일 작은수의 idx
            for(int i = 0 ; i < arry.length ;i++){
                if(tmp > arry[i]){
                    idx = i;
                    tmp = arry[i];
                }
                    
            }
           	// 입력한 배열을 복사할때 제일 작은수의 idx는 제외한다.
            int idxs = 0;
            for(int i = 0 ; i < arry.length; i++){
                if(i == idx)
                    continue;
                answer[idxs] = arry[i];
                idxs++;
            }       
        }
        return answer;
    }
}