Programmers / 제일 작은 수 제거하기

Programmers / 제일 작은 수 제거하기

Problem

Solution 1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Solution {
    public int[] solution(int[] arr) {
        // Check array size and return -1
        if (arr.length == 0 || arr.length == 1) {
            return new int[] {-1};
        }
        
        // Find min value
        int min = Integer.MAX_VALUE;
        for (int i = 0; i < arr.length; i++) {
            if (min > arr[i]) {
                min = arr[i];
            }
        }
        
        // Set result
        int j = 0;
        int[] result = new int[arr.length-1];
        for (int i = 0; i < arr.length; i++) {
            if (min != arr[i]) {
                result[j] = arr[i];
                j++;
            }
        }
        
        return result;
    }
}
Solution 1
  • Description
    • 가장 작은 값을 먼저 찾은 후에, 배열에서 제거
  • Time Complexity
    • O(len(arr))
    • len(arr)의 크기만큼 for Loop 두번 수행
  • Space Complexity
    • O(len(arr))
    • 함수의 입력값으로 len(arr)의 크기 만큼 Memory 이용