https://programmers.co.kr/learn/courses/30/lessons/12935
문제 분석
- 배열(temp)를 활용하여 입력된 배열을 복사하고 정렬을 통해 가장 작은 수를 [0]번 인덱스에 위치시킨다.
- 만약 가장 작은 수를 제거한 배열의 길이가 0이라면 정답(answer)배열에 [0]번 인덱스에 -1을 위치시킨다.
- 가장 작은 수를 제거한 배열의 길이가 0보다 크다면 for문을 통해 가장 작은 수일 경우 continue를 통해 넘어가고, 그 외의 경우 정답(answer)배열에 추가한다.
문제 풀이
1. 정답 배열(answer)은 입력된 배열(arr)보다 하나 작은 크기로 생성한다.
2. 가장 작은 수를 찾기 위해 배열(temp)에 입력된 배열(arr)를 복사한다.
3. 가장 작은 수를 찾기위해 배열(temp)를 Arrays의 sort를 사용하여 정렬한다.
4. 만약 가장 작은 수를 제거한 배열의 길이가 0이라면 -1을 입력하여 출력한다.
5. 만약 가장 작은 수를 제거한 배열의 길이가 0보다 크다면 for문을 통해 정답 배열(answer)에 입력받은 배열(arr)을 차례대로 넣어준다. (이 때, 가장 작은 값이 나왔을 경우 continue를 활용하여 다음 값으로 넘어간다)
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int[] answer = new int[arr.length-1];
int[] temp = Arrays.copyOf(arr, arr.length);
Arrays.sort(temp);
if(arr.length==1){
answer = new int[1];
answer[0] = -1;
}else{
for(int i=0,j=0;i<arr.length;i++){
if(arr[i]==temp[0]){
continue;
}
answer[j] = arr[i];
j++;
}
}
return answer;
}
}
'Algorithm > programmers' 카테고리의 다른 글
programmers 정수 내림차순으로 배치하기 (0) | 2022.01.16 |
---|---|
programmers 정수 제곱근 판별 (0) | 2022.01.16 |
programmers 짝수와 홀수 (0) | 2022.01.16 |
programmers 최대공약수와 최소공배수 (0) | 2022.01.16 |
programmers 중복 제거하기 (0) | 2022.01.16 |