코린이의 소소한 공부노트

[프로그래머스/Lv.1] 제일 작은 수 제거하기 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.1] 제일 작은 수 제거하기

무지맘 2022. 11. 24. 10:57

1. Input

1) 정수를 저장한 배열 arr

 

2. Output

1) arr에서 가장 작은 수를 제거한 배열

2) arr가 빈 배열인 경우엔 배열에 1을 채워 반환

 

3. Constraint

1) arr은 길이 1 이상인 배열

2) arr에 중복되는 숫자는 없다.

 

4. Example

Input: arr={4,3,2,1} -> Output: {4,3,2}

Input: arr={10} -> Output: {-1}

설명:

- 1이 가장 작은 수이므로 1을 제외한 나머지를 반환한다.

- 10이 가장 작은 수이므로 10을 제외하면 빈 배열이 된다. 그러므로 1을 채워서 반환한다.

 

5. Code

1) 첫 코드(2022/??)

if(arr.length == 1)
    return new int[] {-1};
else{
    int[] answer = new int[arr.length-1];
    int index = findMin(arr);
    for(int i=0 ; i<index ; i++)
        answer[i] = arr[i];
    for(int i=index ; i<answer.length ; i++)
        answer[i] = arr[i+1];
return answer;

// 가장 작은 요소의 인덱스를 반환하는 메서드
int findMin(int[] a){
    int min = a[0];
    int index = 0;
    for(int i=1 ; i<a.length ; i++)
        if(a[i] < min){
            min = a[i];
            index = i;
        }
    return index;
}