[알고리즘문제풀기] 배열 만들기 3

silver's avatar
Aug 17, 2025
[알고리즘문제풀기] 배열 만들기 3

문제

내가 작성한 정답

import java.util.*; class Solution { public int[] solution(int[] arr, int[][] intervals) { List<Integer> answer = new ArrayList<>(); for(int i=0; i<intervals.length; i++){ for(int j = intervals[i][0]; j<=intervals[i][1]; j++){ answer.add(arr[j]); } } return answer.stream().mapToInt(i->i).toArray(); } }

다른 사람들의 정답

import java.util.*; class Solution { public int[] solution(int[] arr, int[][] intervals) { // 1. intervals 배열을 스트림으로 변환 (Stream<int[]>) return Arrays.stream(intervals) // 2. 각 interval마다 arr 배열의 부분 배열을 복사하여 IntStream으로 변환 .flatMapToInt(ints -> Arrays.stream( Arrays.copyOfRange(arr, ints[0], ints[1] + 1) )) // 3. 모든 부분 배열의 IntStream을 하나의 IntStream으로 합친 후, // 4. 결과를 int 배열로 변환하여 반환 .toArray(); } } class Solution { public int[] solution(int[] arr, int[][] intervals) { int s1 = intervals[0][0], e1 = intervals[0][1], s2 = intervals[1][0], e2 = intervals[1][1], idx = 0; int[] answer = new int[e1 - s1 + e2 - s2 + 2]; for (int i = s1; i <= e1; i++) { answer[idx++] = arr[i]; } for (int i = s2; i <= e2; i++) { answer[idx++] = arr[i]; } return answer; } }
Share article

silver