728x90
반응형
SMALL
문제 설명
정수를 저장한 배열, 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,2,1] | [4,3,2] |
[10] | [-1] |
/*
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.
단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.
예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
*/
package LV1;
import java.util.*;
public class H12935 {
public static int[] solution(int[] arr) {
if(arr.length <= 1) return new int[] {-1};
ArrayList<Integer> list = new ArrayList<Integer>();
for (int a : arr) {
list.add(a);
}
Integer min = Collections.min(list);
list.remove(min);
int[] answer = new int[arr.length - 1];
for (int i = 0; i < list.size(); ++i) {
answer[i] = list.get(i);
}
return answer;
}
public static void main(String[] args) {
int[] arr = new int[]{4, 3, 2, 1};
System.out.println(Arrays.toString(solution(arr)));
}
}
배열제거
List를 이용해서 최솟값을 구하고 요소를 제거했다. 최솟값을 구할 때는 Collections.min(리스트)
를 사용하는데 반환값이 int가 아니라 Integer이다.
list.remove(Integer값)을 통해 요소를 제거하고, 다시 배열에 값을 넣는다.
포문으로 ArrayList에 하나씩 값을 넣을 때에는 add를 이용한다. 다시 배열로 바꿀때는 list의 길이는
.size()를 이용하고, 리스트에서 값을 하나씩 뺄때는 get(인덱스)를 이용한다.
참조형 int integer null값이 들어갈수 있다.
728x90
반응형
LIST
'알고리즘 > 프로그래머스 JAVA LV.1' 카테고리의 다른 글
하샤드 수 (0) | 2023.01.28 |
---|---|
콜라츠 추측 (0) | 2023.01.28 |
정수 제곱근 판별 (0) | 2023.01.28 |
정수 내림차순으로 배치하기 (0) | 2023.01.28 |
자연수 뒤집어 배열로 만들기 (0) | 2023.01.27 |