· 문제 설명
정수를 저장한 배열, 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] |
· Thinking 1
1. 배열 사이즈가 1이면 -1반환
2. min을 0으로 초기화 한 후 포문 돌고나서 min에 해당하는 인덱스를 제거
· 완성 코드
class Solution {
public int[] solution(int[] arr) {
if (arr.length == 1) return new int[]{-1};
int min = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[min] > arr[i]) {
min = i;
}
}
if (min != arr.length - 1) {
for (int i = min; i < arr.length-1; i++) {
arr[i] = arr[i + 1];
}
}
int[] answer = new int[arr.length - 1];
for (int i = 0; i < arr.length - 1; i++) {
answer[i] = arr[i];
}
return answer;
}
}
짜고나니까 코드가 예쁘지가 않다..
· 문제 출처
https://programmers.co.kr/learn/courses/30/lessons/12935
'Algorithm > Programmers' 카테고리의 다른 글
짝수와 홀수 (0) | 2019.05.31 |
---|---|
직사각형 별찍기 (0) | 2019.05.31 |
정수 제곱근 판별 (0) | 2019.05.31 |
정수 내림차순으로 배치하기 (0) | 2019.05.31 |
자연수 뒤집어 배열로 만들기 (0) | 2019.05.31 |
댓글