자바 문제 풀이/기초문제

[프로그래머스 자바] 리스트 자르기

ari0930 2024. 4. 16. 23:40

[프로그래머스 자바] 리스트 자르기

정수n과 정수 3개가 담긴 리스트 slicer 그리고 여러 개가 담긴 리스트 num_list가 주어집니다.

slicer을 차례대로 a,b,c라고할때 n에 다라 다음과 같이 num_list를 슬라이싱 할려고 한다.

슬라이싱한 리시트를 return하도록 solution 함수를 완성해주세요.

 

풀이

스위치 문을 이용하여 n의 값에 따라 슬라이싱 하는 방법을 나누었다.

ArrayList 를 이용하여 값을 추가해주고 

스위치문을 빠져나오고 난후 다시 배열로 바꿔주는 작업을 하였다 

num.size(); ArrayList 의 길이를 가지고 배열을 만들어 값을 집어 넣었다.

        int a=num.size();
                answer=new int[a];
                for(int i=0; i<num.size();i++) {
                	answer[i]=num.get(i);
                }

코드

import java.util.ArrayList;
class Solution {
    public int[] solution(int n, int[] slicer, int[] num_list) {
        int[] answer = null; 
        ArrayList<Integer> num=new ArrayList<>();
        switch (n) {
            case 1: {
                for (int i = 0; i <=slicer[1]; i++) {
                    num.add(num_list[i]);
                }
                break;
            }
            case 2: {

                for (int i = slicer[0]; i < num_list.length; i++) {
                    num.add(num_list[i]);
                }
                break;
            }
            case 3: {

                for (int i = slicer[0]; i <= slicer[1]; i++) {
                    num.add(num_list[i]);
                }
                break;
            }
            case 4: {
                for (int i = slicer[0]; i <= slicer[1]; i = i+slicer[2]) {
                    num.add(num_list[i]);
                }
                break;
            }
        }
        int a=num.size();
                answer=new int[a];
                for(int i=0; i<num.size();i++) {
                	answer[i]=num.get(i);
                }


        return answer;
    }
}
반응형