프로그래머스 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;
}
}
반응형
'개발로그 > 알고리즘' 카테고리의 다른 글
프로그래머스 Lv.0 가까운 수 (0) | 2023.07.20 |
---|---|
프로그래머스 Lv.0 다음에 올 숫자 (0) | 2023.07.19 |
프로그래머스 Lv.0 전국 대회 선발 고사 (1) | 2023.07.17 |
프로그래머스 Lv.0 이진수 더하기 (0) | 2023.07.15 |
프로그래머스 Lv.0 외계행성의 나이 (0) | 2023.07.14 |
댓글