✍스펙업/코딩테스트

자바 리스트 자르기 (Arrays.copyOfRange, ArrayList, List 문법사용)

우동한그릇 2023. 7. 16. 20:54
반응형

 

import java.util.*;

class Solution {
    public int[] solution(int n, int[] slicer, int[] num_list) {
        int a = slicer[0];
        int b = slicer[1];
        int c = slicer[2];

        if (n == 1)
            return Arrays.copyOfRange(num_list, 0, b + 1);
        if (n == 2)
            return Arrays.copyOfRange(num_list, a, num_list.length);
        if (n == 3)
            return Arrays.copyOfRange(num_list, a, b + 1);
        if (n == 4) {
            List<Integer> result = new ArrayList<>();
            for (int i = a; i < b + 1; i += c) {
                result.add(num_list[i]);
            }
            int[] answer = new int[result.size()];
            for (int i = 0; i < result.size(); i++) {
                answer[i] = result.get(i);
            }
            return answer;
        }
        return num_list;
    }
}

 

풀이방법 :

 

n에 따라 리스트를 자르는 방법이 다르므로 if문을 통해서 n에 따라서

num_list 를 각각 다르게 반환해준다.

 

여기서 n이 1,2,3일때는 0또는 a부터 b+1 또는 끝 배열까지의 값을 구해주는

Arrays.copyOfRange 문법을 통해서 바로 구해줄 수 있지만

 

c 간격으로 배열을 만들어주어야 하는 n=4 경우에는

List를 생성하여 그 값을 배열에 담아서 리턴해주어야한다.

 

반응형