제일 작은 수 제거하기 Lv. 1

박영준·2022년 11월 22일
0

코딩테스트

목록 보기
26/300
class Solution {
    public int[] solution(int[] arr) {
        int[] answer = {};
        return answer;
    }
}

해결법

방법 1

class Solution {
    public int[] solution(int[] arr) {
        
        // 배열 arr의 길이가 1인 경우(= 빈 배열인 경우) -1을 return
        if (arr.length == 1) {
            int[] answer = {-1};
            return answer;
            
        } else {
            // 배열 arr의 길이가 1보다 큰 경우(= 배열 길이가 1이 아닌 경우, arr.length에서 -1을 하면 arr.length == 1 인 경우와는 반대 조건)(최소값을 빼서 저장하면 arr.length - 1) (주어진 배열에서 가장 작은 수를 뺀 길이로 초기화)(총 4개의 배열에서 3개의 배열만 남겨둠. 결론적으로 return 해야할 것은 최소값을 뺀 나머지 배열이므로.) 
            int[] answer = new int[arr.length - 1];
        
            // 가장 작은 수 구하기(최소값을 뺀 나머지 배열이 조건에 부합한지 여기의 최소값으로 판단하기 위함)
            
            // min을 선언해서 기준을 정함)
            int min = arr[0];
            
            // min 과 arr[i] 中 더 작은 값(= 배열에서 가장 작은 값)을 찾음
            for (int i = 0; i < arr.length; i++) {
                min = Math.min(min, arr[i]);
            }
            
            // 가장 작은 값을 구하고 남은 값들을 answer에 저장하기 위함
            
            int index = 0;

            for(int i = 0; i < arr.length; i++) {
                // 최소값 min이 arr[i]와 같다면, continue로 인해 for문으로 돌아가고(= 배열에 넣지않고 넘어감)
                if (min == arr[i]) {
                    continue;
                // 같지 않다면, answer에 값을 넣어주고, 다음 값으로 간다    
                } else {
                    answer[index] = arr[i];
                    index++;
                }
                
            }    
            
            return answer;
        }
    }
}
  • Math.min( , ) : ( ) 안에 들어간 두 인자 中 더 작은 값을 반환
  • Math.max( , ) : 더 큰 값을 반환

제일 작은 수 제거하기 Lv. 1

profile
개발자로 거듭나기!

0개의 댓글