알고리즘, 코딩테스트

[프로그래머스/ 코딩테스트 연습문제] 제일 작은 수 제거하기

jy3574 2024. 11. 11. 12:36

Q. 제일 작은 수 제거하기

A.

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

//리턴하려는 배열이 빈 배열인 경우에 배열에 -1을 채워 리턴
//빈 배열인 경우는 arr 배열의 크기가 1인 경우이니까 arr.length가 1인 배열일 경우
//-1을 넣어서 반환
        if(arr.length == 1){
            return new int[]{-1};
        }
        
//최솟값 찾기
//min을 정수타입이 가질 수 있는 최댓값으로 초기화하고, 이 값을 가지고 배열의 요소와 비교를 하면서 더 작은 값을 찾는 방식
        int min = Integer.MAX_VALUE;
        
//배열을 비교하면서 제일 찾은 값을 찾는 과정
        for(int i : arr){
            min = Math.min(min,i);
        }
        
//최솟값이 빠져야하니까 새로운 배열은 원래 arr 배열에서 크기가 1작음
        int[] answer = new int[arr.length - 1];
        int num = 0;
        
//배열을 돌면서 min 값이 아닌 경우 answer 배열에 담기
        for(int i : arr){
            if(i != min){
                answer[num++] = i;
            }
        }
        return answer;
    }
}