코딩테스트(Level 0~1)

[JAVA, Programmers] 제일 작은 수 제거하기(자바)

justdoIT0730 2022. 11. 21. 15:29
728x90
728x90

1. 문제 설명

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

 

2. 제한 조건

arr 길이 1 이상인 배열입니다.

인덱스 i, j 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.

 

3. 입출력

arr return
[4,3,2,1] [4,3,2]
[10] [-1]

 

import java.util.*;
class Solution {
    public int[] solution(int[] arr) {
        int[] answer = {};
        int min = arr[0];		
		ArrayList<Integer> a = new ArrayList<Integer>();
		if (arr.length == 1) {					//1
			a.add(-1);
		} else {						//2
			for (int i = 0; i < arr.length; i++) {
				if (min > arr[i]) {
					min = arr[i];
				}
			}
			for (int i = 0; i < arr.length; i++) {		//3
				if (arr[i] != min) {
					a.add(arr[i]);
				}
			}
		}
		answer = new int[a.size()];				//4
		for (int i = 0; i < a.size(); i++) {
			answer[i] = a.get(i);
		}

        return answer;
    }
}

//1. arr 배열 내 요소가 1개라면 a에 -1을 담는다.

//2. 아닐 시 최솟값을 구한다.

//3. arr 배열에서 최소값을 제외한 나머지 요소들을 a에 담는다.

//4. a의 크기를 구해 a내 요소들을 answer에 담는다.

728x90
728x90