본문 바로가기

코딩테스트

리스트 자르기 JAVA 프로그래머스 코딩테스트

리스트 자르기 JAVA 

 

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

 

프로그래머스

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

programmers.co.kr

 

문제설명 : 정수 n과 정수 3개가 담긴 리스트 slicer 그리고 정수 여러 개가 담긴 리스트 num_list가 주어집니다. slicer에 담긴 정수를 차례대로 a, b, c라고 할 때, n에 따라 다음과 같이 num_list를 슬라이싱 하려고 합니다.

 

JAVA 코드 :

import java.util.Arrays;

class Solution {
    public int[] solution(int n, int[] slicer, int[] num_list) {
        int[] answer = {};

        if(n==4){   
            int size = (slicer[1] - slicer[0]) / slicer[2] + 1;      
            answer = new int[size];
            
            for (int i = 0; i < size; i++) {
                answer[i] = num_list[slicer[0] + i * slicer[2]];
            }
            
        } else if(n==3){
            answer = Arrays.copyOfRange(num_list, slicer[0], slicer[1]+1);
        } else if(n==2){
            answer = Arrays.copyOfRange(num_list, slicer[0], num_list.length );
        } else {
            answer = Arrays.copyOfRange(num_list, 0, slicer[1]+1);  
        }
        
        return answer;
    }
}

 

자바에서 배열 복사할 때, 사용한 Arrays.copyOfRange() 메소드를 알게 됐다!

 

사용법 :

Arrays.copyOfRange(원본배열, 시작인덱스, 끝인덱스);

728x90
300x250