(JAVA) 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수

2024. 9. 19. 16:02·JAVA 알고리즘

▶ 문제

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

▶ 소스코드

class Solution {
    public int[] solution(int[] arr) {
        // 배열의 길이가 1인 경우 [-1]을 반환
        if (arr.length == 1) {
            return new int[]{-1};
        }

        // 배열에서 가장 작은 값을 찾음
        int min = arr[0];  // 배열의 첫 번째 값을 가장 작은 값으로 초기 설정
        for (int i = 1; i < arr.length; i++) {  // 배열을 순회하며 최소값을 찾음
            if (arr[i] < min) {
                min = arr[i];
            }
        }

        // 가장 작은 값이 제거된 새로운 배열을 생성
        int[] answer = new int[arr.length - 1];  // 새로운 배열의 크기는 기존 배열에서 하나 작음
        int idx = 0;  // 새로운 배열의 인덱스를 관리하기 위한 변수
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != min) {  // 배열에서 최소값이 아닌 값만 새로운 배열에 추가
                answer[idx++] = arr[i];  // 값을 넣고 인덱스 증가
            }
        }

        return answer;  // 새로운 배열 반환
    }
}

▶ 설명

  1. 배열 길이가 1인 경우 처리 (if (arr.length == 1))
    • 먼저 배열이 하나의 원소만 가진 경우에는 그 원소를 제거할 수 없으므로 [-1]을 반환해야 함. 따라서 배열의 길이가 1인 경우를 먼저 확인하고, new int[]{-1}을 반환함.
    • 예를 들어, 배열이 [10]인 경우 [-1]을 반환함.
  2. 배열에서 가장 작은 값 찾기
    • int min = arr[0];로 배열의 첫 번째 값을 최소값으로 설정한 후, for 루프를 통해 배열의 나머지 원소를 확인함.
      • 루프 안에서 if (arr[i] < min)을 사용해 현재 원소가 최소값보다 작은 경우, 그 값을 최소값으로 업데이트함.
      • 예시: arr이 [4, 3, 2, 1]일 때, 루프가 종료되면 min은 1이 됨.
  3. 가장 작은 값이 제거된 배열 생성
    • 배열에서 가장 작은 값을 제외하고 나머지 값을 담기 위해 새로운 배열 answer를 만듭니다. 이 배열의 크기는 기존 배열보다 하나 작음 >>> new int[arr.length - 1].
    • 새로운 배열에 값을 넣을 때 사용할 인덱스 변수 idx를 0으로 초기화함.
    • 다시 for 루프를 돌면서 if (arr[i] != min) 조건에 따라, 최소값이 아닌 값만 새로운 배열에 복사.
    • 예시: [4, 3, 2, 1]에서 최소값 1을 제외하면 새로운 배열은 [4, 3, 2].
  4. 최종 배열 반환
    • 모든 값이 처리된 후, 새로운 배열 answer를 반환

'JAVA 알고리즘' 카테고리의 다른 글

(JAVA) array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수 만들기  (1) 2024.09.19
(JAVA) String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수  (0) 2024.09.19
(JAVA) 없는 숫자 더하기  (0) 2024.09.19
(JAVA) 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수  (1) 2024.09.19
(JAVA) 실제 정수들의 합을 구하여 return 하도록 함수 완성하기  (0) 2024.09.19
'JAVA 알고리즘' 카테고리의 다른 글
  • (JAVA) array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수 만들기
  • (JAVA) String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수
  • (JAVA) 없는 숫자 더하기
  • (JAVA) 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수
lastdove
lastdove
lastdove 님의 블로그 입니다.
  • lastdove
    lastdove 님의 블로그
    lastdove
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Spring (16)
      • JAVA (17)
      • JAVA 알고리즘 (20)
      • Project (5)
      • SQL 문제풀이 (17)
      • Git&Linux (2)
      • Web development(입문) (2)
      • Sparta (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
lastdove
(JAVA) 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수
상단으로

티스토리툴바