728x90
🖊️문제
정수 배열 arr가 주어집니다. 배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 return하는 solution함수를 완성해 주세요.
단, arr에 2가 없는 경우 [-1]을 return합니다.
🖊️문제 풀이
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
ArrayList<Integer> list = new ArrayList<>();
int startIdx = -1;
int endIdx = -1;
for (int i = 0; i < arr.length; i++) {
if(arr[i] == 2){
startIdx = i;
break;
}
}
for (int i = 0; i < arr.length; i++) {
if(arr[i] == 2){
endIdx = i;
}
}
if(startIdx!=-1 && endIdx!=-1){
for (int i = startIdx; i <=endIdx ; i++) {
list.add(arr[i]);
}
}else if(startIdx==endIdx && startIdx != -1 && endIdx != -1){
list.add(2);
}else {
list.add(-1);
}
answer = list.stream().mapToInt(Integer::intValue).toArray();
return answer;
}
}
728x90
'알고리즘 자료구조 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 한 번만 등장한 문자 (0) | 2023.07.24 |
---|---|
[프로그래머스] 홀수vs짝수 (0) | 2023.07.23 |
[프로그래머스] 첫 번째로 나오는 음수 (0) | 2023.07.20 |
[프로그래머스] 리스트 자르기 (0) | 2023.07.20 |
[프로그래머스] 글자 지우기 (0) | 2023.07.19 |