JAVA/Algorithm
[프로그래머스/java] 제일 작은 수 제거하기
nang.
2020. 12. 2. 22:22
반응형
SMALL
https://programmers.co.kr/learn/courses/30/lessons/12935
코딩테스트 연습 - 제일 작은 수 제거하기
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1
programmers.co.kr
- 최소값 찾는 알고리즘
class Solution {
public int[] solution(int[] arr) {
int size = arr.length;
int[] answer = new int[size-1];
if(size == 1) {
arr[0] = -1;
return arr;
} else {
int min = Integer.MAX_VALUE;
int minIdx = 0;
for(int i = 0; i < size; i++) { // 최소값 찾아주기
if(arr[i] < min) {
min = arr[i];
minIdx = i;
}
}
int index = 0;
for(int i = 0; i < size; i++) {
if(i == minIdx) { // 최소값의 인덱스이면 빼고
continue;
} else { // 나머지를 리턴할 배열에 넣어주기
answer[index] = arr[i];
index++;
}
}
}
return answer;
}
}
- 다른 풀이
class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
if (arr.length == 1) {
answer = new int[]{-1};
} else {
List<Integer> list = new ArrayList<>();
for (int a : arr)
list.add(a);
list.remove(Collections.min(list));
answer = new int[arr.length - 1];
for (int i = 0; i < list.size(); i++)
answer[i] = list.get(i);
}
return answer;
}
}
반응형
LIST