[프로그래머스 스쿨] 코딩테스트 연습 기초 - 배열 자르기

김현정·2025년 3월 6일
0

문제 설명

정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.

입출력 예 설명

입출력 예 #1
[1, 2, 3, 4, 5]의 1번째 인덱스 2부터 3번째 인덱스 4 까지 자른 [2, 3, 4]를 return 합니다.

입출력 예 #2
[1, 3, 5]의 1번째 인덱스 3부터 2번째 인덱스 5까지 자른 [3, 5]를 return 합니다.

기본 코드

class Solution {
    public int[] solution(int[] numbers, int num1, int num2) {
        int[] answer = {};
        return answer;
    }
}

내가 구현한 코드

class Solution {
    public int[] solution(int[] numbers, int num1, int num2) {
        int index = 0;
        int[] answer = new int[num2-num1 + 1];
        for (int i = num1; i <= num2; i++){
            answer[index] = numbers[i];
            index++;
        }
        return answer;
    }
}

내가 구현한 두 번째 코드

import java.util.*;
class Solution {
    public int[] solution(int[] numbers, int num1, int num2) {
        return Arrays.copyOfRange(numbers, num1, num2 + 1);
    }
}

문제 해결

  1. 정수형 index를 초기화를 한다. answer 배열을 새롭게 선언하는데 길이를 num2 - num1 +1을 한다. (+1을 하는 이유는 index는 0부터 시작하기 때문에)
    for문을 통해서 i의 시작지점과 i의 범위를 설정, number의 인덱스 값을 answer값을 앞에서부터 하나씩 추가하여 반환함.

  2. Arrays.copyOfRange() 메서드를 통해서 배열의 특정 구간을 복사하여 새로운 배열을 생성한다.

알게된 점

  1. Arrays.copyOfRange() 메서드는 배열의 특정 구간을 복사하여 새로운 배열을 생성하는 기능을 제공함.

0개의 댓글