코린이의 소소한 공부노트

[프로그래머스/Lv.0] 2의 영역 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.0] 2의 영역

무지맘 2023. 5. 1. 22:41

1. Input, Output, Example

- 배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 반환

 

2. Constraint

1) 1 arr의 길이 100,000

2) 1 arr의 원소 10

 

3. Code

1) 첫 코드(2023/05/01)

import java.util.*;
class Solution {
    public int[] solution(int[] arr) {
        ArrayList<Integer> list = new ArrayList<>();
        for(int i=0 ; i<arr.length ; i++)
            if(arr[i]==2)
                list.add(i);
        int[] answer;
        if(list.size()==0)
            answer = new int[] {-1};
        else if(list.size()==1)
            answer = new int[] {2};
        else{
            int start = list.get(0), end = list.get(list.size()-1);
            answer = new int[end-start+1];
            System.arraycopy(arr, start, answer, 0, answer.length);
        }
        return answer;
    }
}