29.제일 작은 수 제거하기(25.1.22.수)

kinkin_a·2025년 1월 22일

내일배움캠프 TIL

목록 보기
46/100

1.내가 푼 코드

import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

class Solution {
    public List solution(int[] arr) {
      List<Integer> answer=new ArrayList<Integer>();
       
      if(arr.length>1){  
      int a=Arrays.stream(arr).min().getAsInt();
      answer= Arrays.stream(arr).filter(i-> i!=a).boxed().collect(Collectors.toList());}
        
    else answer.add(-1);
    return answer;
    }
}```

2.다른 분 코드-(1)

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();
      return Arrays.stream(arr).filter(i -> i != min).toArray();
  }
}

다른 분 코드-(2)

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;
  }
}
  • Math.min(a,b)/Math.max(a,b): 두 숫자 중 더 작은 값, 더 큰 값을 구한다.
  • Integer.MIN_VALUE/Integer.MAX_VALUE: integer로 표현할 수 있는 정수 중 가장 작은 값(=-2147483648)/가장 큰 값(=2147483647)을 반환한다.
  • 🤔 배열은 특정값을 제거하는 함수가 없다-> 리스트는 Arrays.remove(index i)로 제거 가능.

Stream

  • 배열은 Arrays.stream(array) 로 시작.
  • max(),min()은 최종값을 반환
  • filter(i-> i==0) 각 요소가 0인 인덱스만 골라 반환
  • collect(Collectors.toList()): 결과값들을 리스트로 다시 재구성
  • map(item-> item.getName()) : 각 객체의 함수의 리턴값을 반환
  • allMatch,anyMatch,noneMatch(): 전부 맞으면/ 하나라도 맞으면/ 하나도 맞지 않으면 true/ false 반환
  • distinct(): 리스트에서 중복 요소를 제거

0개의 댓글