LV1. 제일 작은 수 제거하기

❔ 문제

❗ 내 풀이

class Solution {
  public int[] solution(int[] arr) {
      if(arr.length == 1){
          int[] answer = {-1};
          return answer;
      }

      int[] answer = new int[arr.length-1];
      int minIndex=0;

      for(int i=0;i<arr.length;i++){
          if(arr[minIndex]>arr[i]){
              minIndex = i;
          }
      }
      for(int i=minIndex+1;i<arr.length;i++){
          arr[i-1] = arr[i];
      }
      for(int i=0;i<answer.length;i++){
          answer[i] = arr[i];
      }
      return answer;
  }
}

🚩참고 (다른 풀이)


1. 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
class Solution {
  public int[] solution(int[] arr) {
      if (arr.length == 1) {
            arr[0] = -1;
            return arr;
        } else {
            ArrayList<Integer> arrayList = new ArrayList<Integer>();	// ArrayList 활용
            for (int a : arr) {
                arrayList.add(a);
            }
            Integer minimum = Collections.min(arrayList);		// Collection 활용
            arrayList.remove(minimum);							// 최소값 제거
            int[] resultArray = new int[arr.length - 1];
            for (int i = 0; i < arrayList.size(); ++i) {
                resultArray[i] = arrayList.get(i);
            }
            return resultArray;
        }
  }
}

2.
import java.util.Arrays;
import java.util.stream.Stream;
import java.util.List;
import java.util.ArrayList;

class Solution {
  public int[] solution(int[] arr) {
      if (arr.length <= 1) return new int[]{ -1 };
      int min = Arrays.stream(arr).min().getAsInt();			// Stream 활용
      return Arrays.stream(arr).filter(i -> i != min).toArray();
  }
}

📝 정리

💬 ArrayList 활용해서 풀어낼 수 있다.

✔ Arrays.Stream
✔ ArrayList


좋은 웹페이지 즐겨찾기