문제
내가 작성한 정답
import java.util.*;
import java.util.stream.*;
class Solution {
public int[] solution(int n, int[] slicer, int[] num_list) {
List<Integer> answer = new ArrayList<>();
for(int i = (n==1)?0:slicer[0]; i<= ((n==2)?num_list.length-1:slicer[1]); i=i+((n==4)?slicer[2]:1)){
answer.add(num_list[i]);
}
return answer.stream().mapToInt(i->i).toArray();
}
}다른 사람들의 정답
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;
}
}
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int n, int[] slicer, int[] num_list) {
int[] answer = null;
int a = slicer[0], b = slicer[1], c = slicer[2];
switch (n) {
case 1:
answer = Arrays.copyOf(num_list, b + 1);
break;
case 2:
answer = Arrays.copyOfRange(num_list, a, num_list.length);
break;
case 3:
answer = Arrays.copyOfRange(num_list, a, b + 1);
break;
case 4:
answer = IntStream.range(0, (b - a) / c + 1).map(i -> num_list[a + i * c]).toArray();
break;
}
return answer;
}
}Share article