Study with me/프로그래머스 L0 마스터하기
프로그래머스 - L0 2의영역
외계나무
2024. 4. 6. 17:07
1. Brute-force
class Solution {
public int[] solution(int[] arr) {
int[] answer;
int start = -1;
int end = -2;
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 == end) {
answer = new int[1];
answer[0] = 2;
} else if(start < end) {
int i = 0;
answer = new int[end-start+1];
for(int j=start; j<=end; j++) {
answer[i++] = arr[j];
}
} else {
answer = new int[1];
answer[0] = -1;
}
return answer;
}
}
2. Stream, ArrayList 사용하기
import java.util.*;
import java.util.stream.*;
class Solution {
public int[] solution(int[] arr) {
List<Integer> answer = Arrays.stream(arr)
.boxed()
.collect(Collectors.toList());
while(true) {
if(answer.size() == 0) {
answer.add(-1);
break;
} else if(answer.get(0)==2 && answer.get(answer.size()-1)==2) {
break;
} else {
if(answer.get(0)!=2) answer.remove(0);
else if(answer.get(answer.size()-1)!=2) answer.remove(answer.size()-1);
}
}
return answer.stream().mapToInt(Integer::intValue).toArray();
}
}