문제
내가 작성한 정답
import java.util.*;
import java.util.stream.*;
class Solution {
public int[] solution(int[] arr) {
int first = Arrays.stream(arr).boxed().collect(Collectors.toList()).indexOf(2);
int next = -1;
for(int i= arr.length-1; i > first; i--){
if(arr[i]==2){
next = i; break;
}
}
return (first==-1)? new int[]{-1}
: (next==-1)? new int[]{2}
: Arrays.copyOfRange(arr,first,next+1);
}
}
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr) {
int first = -1, last = -1;
for(int i=0; i< arr.length; i++){
if(arr[i]==2){
if(first==-1){
first = i;
}
last = i;
}
}
return (first==-1)? new int[]{-1}
: (last==-1)? new int[]{2}
: Arrays.copyOfRange(arr,first,last+1);
}
}다른 사람들의 정답
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] arr) {
int[] idx = IntStream.range(0, arr.length).filter(i -> arr[i] == 2).toArray();
if (idx.length == 0) return new int[]{-1};
return IntStream.rangeClosed(idx[0], idx[idx.length - 1]).map(i -> arr[i]).toArray();
}
}
import java.util.*;
class Solution {
public ArrayList<Integer> solution(int[] arr) {
ArrayList<Integer> answer = new ArrayList<Integer>();
int start = -1;
int end = -1;
for(int i = 0; i<arr.length; i++){
if(arr[i]==2){
start = i;
break;
}
}
for(int i = arr.length-1; i>=0; i--){
if(arr[i]==2){
end = i;
break;
}
}
if(start==-1 && end==-1){
answer.add(-1);
} else{
for(int i = start; i<=end; i++){
answer.add(arr[i]);
}
}
return answer;
}
}Share article