본문 바로가기
Algorithm/프로그래머스

[프로그래머스]연습문제 : 제일 작은 수 제거하기 (level 1)

by HBGB 2019. 11. 7.

https://programmers.co.kr/learn/courses/30/lessons/12935

 

코딩테스트 연습 - 제일 작은 수 제거하기 | 프로그래머스

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 예 arr return [4,3,

programmers.co.kr

 

 

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
class Solution {
    public int[] solution(int[] arr) {
        
        // 예외처리
        if (arr.length <= 1) {
            return new int[] { -1 };
        }
 
        // 가장 작은 값 인덱스 구하기
        int iMinIndex = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[iMinIndex] > arr[i]) {
                iMinIndex = i;
            }
        }
 
        // 해당 인덱스 건너 뛰고 배열 복사하기
        int[] answer = new int[arr.length - 1];
 
        System.arraycopy(arr, 0, answer, 0, iMinIndex);
        System.arraycopy(arr, iMinIndex + 1, answer, iMinIndex, arr.length - 1 - iMinIndex);
 
        return answer;
    }
}
Colored by Color Scripter

 

 

다른 분들은 Array Stream() 을 이용해서 주로 짠 것 같다. 

 

https://www.geeksforgeeks.org/arrays-stream-method-in-java/

 

Arrays stream() method in Java - GeeksforGeeks

stream(T[] array) The stream(T[] array) method of Arrays class in Java, is used to get a Sequential Stream from the array passed as the parameter… Read More »

www.geeksforgeeks.org

 

기다리고 있어 이해할 수 있을 때 다시 올게,,,

 

댓글