본문 바로가기

Java/프로그래머스

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

https://school.programmers.co.kr/learn/courses/30/lessons/181897

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

정답 

 

import java.util.ArrayList;

class Solution {
    public int[] solution(int n, int[] slicer, int[] num_list) {
        
        ArrayList<Integer> list = new ArrayList<>();
        
        int a = slicer[0];
        int b = slicer[1];
        int c = slicer[2];
        
        
        if(n==1)
        {
            for(int i=0; i<=b; i++)
            {
               list.add(num_list[i]);
            }
        }
        else if(n==2)
        {
            for(int i=a; i<num_list.length; i++)
            {
                list.add(num_list[i]);
            }
            
        }
        else if(n==3)
        {
            for(int i=a; i<=b; i++)
            {
                list.add(num_list[i]);
            }
        }
        else if(n==4)
        {
            for(int i=a; i<=b; i+=c)
            {
                list.add(num_list[i]);
            }
        }
        
        int answer[] = new int[list.size()];
        for(int i=0; i<list.size(); i++)
        {
            answer[i] = list.get(i);
        }
        return answer;
    }
}

 

 

다른 사람의 풀이 

 

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);
      List<Integer> result = new ArrayList<>();
        for (int i = a; i <= b; 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;
    }
}