[Java] 특정 범위 배열 복사 (Arrays.copyOfRange)

epiphany·2022년 10월 21일
0

Programmers School

목록 보기
9/22
post-thumbnail

🛫 Programmers School에서 배열 자르기 문제 풀이 과정에서 효율적인 코드 정리를 위하여 작성

📑 문제

변수 2개(1, 3)를 전달 받았을때 배열의 인덱스가 1~3인 부분만 자르는 문제였음
나는 아래와 같이 코드 작성 -> 정답이지만 더 효율적인 코드가 있어 정리 시작!

class Solution {
    public int[] solution(int[] numbers, int num1, int num2) {
        int[] answer = new int[indx(num1, num2)];
        int cnt = 0;
        if (0<numbers.length && numbers.length<=100){
            for (int i=num1; i<=num2; i++){
                if (0<=numbers[i] && numbers[i]<=1000){
                    answer[cnt] = numbers[i];
                    cnt++;
                }
            }
        }
        return answer;
    }
    public static int indx(int num1, int num2){
        int indx = 0;
        indx = num2-num1+1;
        return indx;
    }
}

🧩 Arrays.copyOfRange

title과 같이 특정 범위 배열을 복사할 수 있는 메소드 함수
Arrays.copyOfRange을 사용하면 위 문제를 한줄에 풀 수 있음!!!

// 사용방법
import java.util.*;
return Arrays.copyOfRange(배열,시작 인덱스,마지막 인덱스+1)
ps. 계속해서 글의 포맷을 정리하고 있어서 
매번 다른 포맷으로 작성되는게 마음에 걸리지만
언젠가는 맘에 드는 포맷으로 자리 잡아야지!

📚 참고

0개의 댓글