[프로그래머스][java] 제일 작은 수 제거하기

김현진·2022년 1월 15일
0

코테준비

목록 보기
5/22

문제 링크 - https://programmers.co.kr/learn/courses/30/lessons/12935

  • 해결 방법
    • 우선 배열에서 최소값을 찾고 최소값을 제외하고 다시 다른 배열에 넣는 것은 번거로우므로 ArrayList를 사용하였다.
      만약 길이가 1이면 문제 조건에 의해 [-1]을 반환하였고
      아니라면 최소값을 구하여 ArrayList에서 제거한 뒤 배열로 바꾸어 반환하였다.
import java.util.*;

class Solution {
   public Integer[] solution(int[] arr) {
       
       if(arr.length==1){ //길이가 1이라면 반환
           Integer result [] = new Integer [1];
           result[0]=-1;
           return result;
       }
       
       ArrayList<Integer> num = new ArrayList<>();
       int min=99999;
       
       for(int i=0;i<arr.length;i++){ //최소값
           num.add(arr[i]);
           if(arr[i]<min) min = arr[i];
       }
       
       for(int i=0;i<num.size();i++){ //최소값 제거
           if(num.get(i)==min) num.remove(i);
       }
   
       
       Integer numArr [] = num.toArray(new Integer[num.size()]); // 다시 배열로
       
       return numArr;
       
   }
}

0개의 댓글