본문 바로가기
코딩테스트/프로그래머스

[프로그래머스/Java]Lv.1 제일 작은 수 제거하기

by ⓞㅖ롱 2023. 4. 18.

문제 읽었을 때는 5분 컷이겠군 ㅋ 했는데 은근 당황스러웠던 문제..

내 코드

import java.lang.Math;

class Solution {
    public int[] solution(int[] arr) {

	//배열이 하나일 때는 [-1] 리턴
        if(arr.length == 1)
        {
            arr[0] = -1;
            return arr;
        }

	//최소값 찾기
        int min = arr[0];
        for(int i=1; i<arr.length; i++){
            min = Math.min(min, arr[i]);
        }
        
       //최소값 제외하기
        int[] answer = new int[arr.length-1];
        int k = 0;
        for(int j=0; j<arr.length; j++){
            if(arr[j] == min){
                continue;
            }else{
                answer[k++] = arr[j];
            }
        }

        return answer;
    }
}

 

Math 함수를 이용하여 최소값 제외는 간단했지만 배열에서 인덱스를 모르고 값을 지우는데서 고민했다.

ArrayList를 쓸까 했지만 for문을 간단히 돌리는 걸로 했다.