1. 문제
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수를 만드시오. 단, 리턴하려는 배열이 빈 배열이면 배열에 -1을 채워 리턴한다. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴한다.
2. 제한
arr은 길이 1 이상인 배열입니다.
인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
3. 정답
class Solution {
public int[] solution(int[] arr) {
int result;
int[] answer;
int k = 0;
int j = 0;
if (arr.length == 1) {
answer = new int[1];
answer[0] = -1;
return answer;
}
else {
result = arr[0];
answer = new int[arr.length - 1];
for (int i = 1; i < arr.length; i++) {
if (result > arr[i]) {
result = arr[i];
}
}
while (j < arr.length - 1) {
if (arr[k] == result) {
k++;
continue;
}
answer[j] = arr[k];
k++;
j++;
}
return answer;
}
}
}
4. 설명
4-1. arr의 길이부터 재서 만약 길이가 1이라면 더 볼것도 없이 -1만 들어있는 배열을 return해주고 끝낸다.
4-2. 위와 같은 경우가 아니라면 result에 일단 arr[0]값을 부여한다.
4-3. for문을 돌면서 arr배열에서 arr[0]보다 작은 값이 있다면 그 값을 result에 넣어준다. 즉, for문을 다 돌고나면 가장 작은 값이 result에 들어있게 된다.
4-4. while문을 통해 arr요소 값들을 하나씩 answer값에 넣는다. 단, 만약 arr요소중에서 result와 같은 값이 있다면(가장 작은 값이라면) 그 부분은 넣지말고 넘어간 상태로 다음 요소들부터 넣어준다.
4-5. answer값을 return한다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
하샤드 수(JAVA) (0) | 2022.01.19 |
---|---|
콜라츠 추측(JAVA) (0) | 2022.01.19 |
정수 제곱근 판별(JAVA) (0) | 2022.01.19 |
정수 내림차순으로 배치하기(JAVA) (0) | 2022.01.19 |
자연수 뒤집어 배열로 만들기(JAVA) (0) | 2022.01.18 |