본문 바로가기
개발로그/알고리즘

프로그래머스 Lv.0 리스트 자르기

by 쩜징 2023. 7. 17.

프로그래머스 Lv.0 리스트 자르기


 

정수 n과 정수 3개가 담긴 리스트 slicer,

정수 여러 개가 담긴 리스트 num_list가 주어진다.

slicer에 담긴 정수를 차례대로 a,b,c라고 할 때

n에 따라 num_list를 다음과 같이 슬라이싱 하려고 한다.

  • n=1 : num_list의 0번 인덱스부터 b번 인덱스까지
  • n=2 : num_list의 a번 인덱스부터 마지막 인덱스까지
  • n=3 : num_list의 a번 인덱스부터 b번 인덱스까지
  • n=4 : num_list의 a번 인덱스부터 b번 인덱스까지 c간격으로

올바르게 슬라이싱한 리스트를 return하라.

 

** 풀이방법

 

ArrayList를 만들어서 n의 조건에 맞게 코드를 짰다.

(for문 범위 설정에 주의할 것!)

List<Integer> list = new ArrayList<>();

//1일 때 0부터 b번 인덱스까지
if (n==1) {
    for (int i=0; i<=slicer[1]; i++) list.add(num_list[i]);
}
//2일 때 a번부터 마지막 인덱스까지
else if (n==2) {
    for (int i=slicer[0]; i<num_list.length; i++) list.add(num_list[i]);
}
//3일 때 a번부터 b번 인덱스까지
else if (n==3) {
    for (int i=slicer[0]; i<=slicer[1]; i++) list.add(num_list[i]);
}
//4일 때 a번부터 b번 인덱스까지 c간격으로
else if (n==4) {
    for (int i=slicer[0]; i<=slicer[1]; i+=slicer[2]) list.add(num_list[i]);       
}

 

<> 전체 코드 </>

import java.util.*;
class Solution {
    public List<Integer> solution(int n, int[] slicer, int[] num_list) {         
        List<Integer> list = new ArrayList<>();
        if (n==1) {
            for (int i=0; i<=slicer[1]; i++) list.add(num_list[i]);
        } else if (n==2) {
            for (int i=slicer[0]; i<num_list.length; i++) list.add(num_list[i]);
        } else if (n==3) {
            for (int i=slicer[0]; i<=slicer[1]; i++) list.add(num_list[i]);
        } else if (n==4) {
            for (int i=slicer[0]; i<=slicer[1]; i+=slicer[2]) list.add(num_list[i]);       
        }

        return list;
    }
}

 

반응형

댓글