inblog logo
|
silver
    알고리즘문제풀기

    [알고리즘문제풀기] 2의 영역

    silver's avatar
    silver
    Apr 24, 2025
    [알고리즘문제풀기] 2의 영역
    Contents
    문제내가 작성한 정답다른 사람들의 정답

    문제

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/181894

    내가 작성한 정답

    ArrayList

    import java.util.*; class Solution { public int[] solution(int[] arr) { ArrayList<Integer> idx = new ArrayList<>(); for(int i=0; i<arr.length; i++) { if (arr[i] == 2) idx.add(i); } int[] answer; if(!idx.isEmpty()) { int f = idx.get(0), l = idx.get(idx.size() - 1); answer = new int[l - f + 1]; int id = 0; for (int i = f; i <= l; i++) { answer[id++] = arr[i]; } } else { answer = new int[]{-1}; } return answer; } }

    stream

    import java.util.stream.*; class Solution { public int[] solution(int[] arr) { int[] idx = IntStream.range(0,arr.length).filter(i->arr[i]==2).toArray(); return idx.length==0? new int[]{-1} :IntStream.rangeClosed(idx[0],idx[idx.length-1]).map(i->arr[i]).toArray(); } }

    다른 사람들의 정답

    반환 List

    : subList(fromIndex, toIndex) - 리스트의 fromIndex(포함)부터 toIndex(미포함)까지의 부분 리스트를 반환한다.
    import java.util.*; import java.util.stream.Collectors; class Solution { public List<Integer> solution(int[] arr) { List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList()); //list.subList(fromIndex, toIndex): 리스트의 fromIndex(포함)부터 toIndex(미포함)까지의 부분 리스트를 반환한다. return list.contains(2) ? list.subList(list.indexOf(2), list.lastIndexOf(2) + 1) : Arrays.asList(-1); } }
    Share article

    silver

    RSS·Powered by Inblog