2019/11/26
문제설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
제한조건
- arr은 길이 1 이상인 배열입니다.
- 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
입출력 예
풀이
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
ArrayList<Integer> arr2 = new ArrayList<Integer>();
if(arr.length <=1) {
return new int[] {-1};
}
for(int i=0; i<arr.length; i++) {
arr2.add(arr[i]);
}
int min = Collections.min(arr2);
int index_of_min = arr2.indexOf(min);
arr2.remove(index_of_min);
answer = new int[arr2.size()];
for(int i=0; i<arr2.size(); i++) {
answer[i] = arr2.get(i);
}
return answer;
}
}
정수 List arr2를 생성해서 문제를 풀어보았다.
제한조건에 반환배열이 빈 배열이라면 {-1}을 반환하라는 조건이 있으므로, 먼저 if문을 이용해서 설정해 주었다. 이 후 List에 배열을 모두 담고 Collections.min함수를 이용해 최소값을 min에 추가, arr2에서 min값을 index해서 index_of_min에 추가해 주었다. 이후 arr2에서 최소값인 index_of_min값을 remove함수를 이용해서 제거했다. 이후 anwer[]배열에 arr2 입력 이후 return해주었다.ㅇㅅㅇ
반응형
'Algorithms > Programmers[Java]' 카테고리의 다른 글
[Programmers] 예산(서머코딩/윈터코딩/2018) [Java] (0) | 2019.11.26 |
---|---|
[Programmers] 문자열 내 p와 y의 개수[Java] (0) | 2019.11.26 |
[Programmers]직사각형 별찍기[Java] (0) | 2019.11.26 |
[Programmers] 비밀지도 (2018 KAKAO BLIND RECRUITMENT)[Java] (0) | 2019.11.26 |
[Programmers]가운데 글자 가져오기[Java] (0) | 2019.11.26 |