[자바(JAVA)] 배열 자르기(Arrays.copyOfRange() )

Noh Jihyeon·2023년 12월 14일
0
post-thumbnail

문제: https://school.programmers.co.kr/learn/courses/30/lessons/120854

✅ 내 코드


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;
    }
}




✅ 다른풀이(1) (코드 간결화)

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

        return answer;
    }
}




✅ 다른풀이(2) 

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



📌 copyOfRange()

java.util.Arrays.copyOfRange() 메서드는 Java에서 배열의 특정 구간을 복사하여 새로운 배열을 생성하는 기능을 제공하는 메서드이다.

public static T[] copyOfRange(T[] original, int from, int to)
  • original: 복사할 원본 배열
  • from: 복사할 구간의 시작 인덱스 (포함)
  • to: 복사할 구간의 끝 인덱스 (포함하지 않음)

✔ original 배열에서 from 인덱스부터 to 인덱스까지의 구간을 새로운 배열로 복사하여 반환하며, 반환되는 배열의 길이는 (to - from)

이다.

from = 이상 ( from(인덱스 값) <= x)to = 미만( x < to(인덱스 값))

profile
꼭꼭 씹어서 소화시키는 맛있는 코딩

0개의 댓글