거인의 코딩일지
[Lv.0_Java] 리스트 자르기 본문
728x90
import java.util.*;
class Solution {
public int[] 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{
for(int i = slicer[0]; i <= slicer[1]; i += slicer[2]){
list.add(num_list[i]);
}
}
int[] answer = list.stream().mapToInt(i->i).toArray();
return answer;
}
}
리스트를 생성한 뒤 문제에서 주어진대로 하나하나 조건문을 작성한 뒤 그 안에 for 문을 돌려서 list 에 담아주고 list 를 다시 배열로 형변환 시킨 뒤 return 하게 하였다.
class Solution {
public int[] solution(int n, int[] slicer, int[] num_list) {
int start = n == 1 ? 0 : slicer[0];
int end = n == 2 ? num_list.length - 1 : slicer[1];
int step = n == 4 ? slicer[2] : 1;
int[] answer = new int[(end - start + step) / step];
for (int i = start, j = 0; i <= end; i += step) {
answer[j++] = num_list[i];
}
return answer;
}
}
다른사람이 짠 코드를 보닌까 더욱 간결해진것같다! ㅇㅅㅇ... 더 열심히 공부하자!
728x90
'알고리즘테스트 > Programmers' 카테고리의 다른 글
[Lv.0_Java] 모스부호(1) (0) | 2023.08.22 |
---|---|
[Lv.0_Java] qr code (0) | 2023.08.18 |
[Lv.0_Java] 진료 순서 정하기 (0) | 2023.08.18 |
[Lv.1_Java]숫자 문자열과 영단어 (0) | 2023.08.18 |
[Lv.0_Java] 팩토리얼 (0) | 2023.08.18 |