728x90
반응형
- 제일 작은 수 제거하기
문제 설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
제한 조건- arr은 길이 1 이상인 배열입니다.
- 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
[4,3,2,1] | [4,3,2] |
[10] | [-1] |
class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
int n=arr.length;
int m=0;
int min=Integer.MAX_VALUE;
if(n==1){
answer=new int[n];
answer[0]=-1;
return answer;
}else{
answer=new int[n-1];
for(int i=0;i<n;i++){
if(min>arr[i]){
min=arr[i];
m=i;
}
}
for(int i=m+1;i<arr.length;i++){
arr[i-1] = arr[i];
}
for(int i=0;i<answer.length;i++){
answer[i] = arr[i];
}
return answer;
}
}
}
+) 세련된(?) 풀이
import java.util.*;
class Solution {
public List<Integer> solution(int[] arr) {
int min = Arrays.stream(arr).min().getAsInt();
int n=0;
Integer[] arr2 = new Integer[arr.length];
for(int i=0;i<arr.length;i++){
arr2[i]=arr[i];
}
List<Integer> list = new ArrayList<Integer>(Arrays.asList(arr2));
if(list.size()==1) {
list.set(0,-1);
}
else
list.remove((Integer)min);
return list;
}
}
# 리스트에서 객체값을 지우고 싶을 때 (기본적으로, 해당 인덱스값을 제거한다.)
숫자인경우, remove((Integer) 원하는 숫자);
문자인경우, remove("원하는 문자");
#List와 같은 컬렉션프레임워크는, Integer와 같은 원형으로 만들어진다.
#스트림을 이용한 최댓값, 최솟값, sum 값 빨리 찾기
Arrays.stream(arr).min().getAsInt();
Arrays.stream(arr).max().getAsInt();
Arrays.stream(arr).sum();
#Integer 배열을 리스트로 변환
List<Integer> list = new ArrayList<Integer>(Arrays.asList(arr2));
728x90
반응형
'Java > Java 알고리즘 프로그래머스' 카테고리의 다른 글
[Sort] 03. JadenCase 문자열 만들기 (0) | 2022.08.05 |
---|---|
[Sort] 02. 문자열 내 마음대로 정렬하기 (0) | 2022.08.05 |
[Linear Search] 03. 스킬 트리 (0) | 2022.08.05 |
[Linear Search] 02. 문자열 내 p와 y의 개수 (0) | 2022.08.04 |
[Linear Search] 01. 전화번호 목록 (0) | 2022.08.04 |