본문 바로가기

프로그래머스(Java)/Level 1

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

728x90

힌트

  • 배열 크기 체크: 배열의 크기가 1일 때 특별히 처리해야 합니다.
  • 최소 값 인덱스 찾기: 배열을 순회하여 최소 값을 찾고 그 인덱스를 기록합니다.
  • 결과 배열 생성: 최소 값을 제외한 나머지 원소를 담을 배열을 생성합니다.
  • 값 복사: 최소 값의 인덱스를 제외하고 나머지 원소를 결과 배열에 복사합니다.

 

 


정답은 더보기 클릭

더보기
class Solution {
    public int[] solution(int[] arr) {
        // 배열 크기가 1일 때
        if (arr.length == 1) {
            arr[0] = -1; // 배열의 유일한 원소를 -1로 설정
            return arr; // 변경된 배열 반환
        }

        // 최소 숫자가 있는 인덱스
        int minIndex = 0;

        // 최소 숫자 위치 찾기
        for (int i = 0; i < arr.length; i++) {
            if (arr[minIndex] > arr[i]) {
                minIndex = i; // 현재 원소가 최소 숫자보다 작으면 인덱스 업데이트
            }
        }

        // 결과 배열 생성, 크기는 원래 배열보다 1 작음
        int[] result = new int[arr.length - 1];

        // 인덱스 변수 초기화
        int index = 0;
        // 원래 배열을 순회하면서 최소 숫자 인덱스를 제외하고 결과 배열에 값 복사
        for (int i = 0; i < arr.length; i++) {
            if (i != minIndex) {
                result[index++] = arr[i]; // 최소 숫자가 아닌 경우 결과 배열에 추가
            }
        }

        return result; // 최종 결과 배열 반환
    }
}
728x90