0418 제일 작은 수 제거하기

곽경희·2022년 4월 24일
0

문제 설명

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

제한 조건

arr은 길이 1 이상인 배열입니다.
인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.

입출력 예

코드

class Solution {
	public int[] solution(int[] arr) {
    	int[] answer = {};
    	int min=0;
    	if(arr.length==1){
        	answer = new int[1];
        	answer[0] = -1;
    	}
    	else{
        	answer = new int[arr.length-1];
        	for(int i=0; i<arr.length; i++){
            	if(i==0){
             		min=arr[0];
        }
            if(arr[i]<min){
                min=arr[i];
            }
        }      
        int j=0;
        for(int i=0; i<arr.length; i++){
            if(min == arr[i]){
                continue;
            }
            answer[j] = arr[i];
            j++;
        }
    }
    return answer;
    }
}

풀이

배열의 길이가 1인 경우 -1을 리턴해준다.
배열의 길이가 1이 아닌 경우 가장 작은 수를 뺀 길이로 초기화한다. 제일 작은 수를 구한 다음에 for문을 돌려 만약 가장 작은 수면 continue해주고 아니면 더해준다.

1개의 댓글

comment-user-thumbnail
2022년 4월 24일

언어 이름 쓰셔서 코드에 색이 있으면 더 눈에 띌 거 같아요~

답글 달기