프로그래머스 181895 배열 만들기 3 JAVA

sundays·2023년 5월 25일
0

문제

배열 만들기 3

풀이

내 풀이

	public int[] solution(int[] arr, int[][] intervals) {
        int length = 0;
        // 범위의 개수를 먼저 더해서 배열의 크기를 알아낸다
        for (int i = 0; i < intervals.length; i++) {
            int[] group = intervals[i];
            length += group[1] - group[0] + 1;
        }
        
        int[] answer = new int[length];
        int index = 0;
        // 범위에 맞는 데이터를 가져와서 증가되는 인덱스에 입력해준다
        for (int i = 0;i < intervals.length; i++) {
            int[] group = intervals[i];
            for (int j = group[0]; j <= group[1]; j++) {
                answer[index++] = arr[j]; 
            } 
        }
        return answer;
    }

이건 따로 설명이 필요하지 않아서 그런데 내가 이 코드를 추가한 이유는 다른 stream 고수님의 스킬을 손민수 하기 위함이다

  • flatMapInt
    • 인트형 스트림 배열을 리턴 한다
  • copyOfRange
    • 배열을 범위 만큼 복사한다
  return Arrays.stream(intervals)
          .flatMapToInt(x -> Arrays.stream(Arrays.copyOfRange(arr, x[0], x[1] + 1)))
          .toArray();

확실히 그냥 막 작성해보는게 도움이 되는것 같다
stream은 문제를 많이 접하면 늘거같다

전체 코드

전체 코드

profile
develop life

0개의 댓글

관련 채용 정보