본문 바로가기

Java/프로그래머스

[JAVA] 프로그래머스 - 배열 만들기 3

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

두 배열을 합치는 방법 

 

[Java]두 배열을 합치는 방법 (tistory.com)

 

[Java]두 배열을 합치는 방법

두 배열을 합치는 방법 이번 포스팅은 Java에서 두 개의 배열을 연결하여 하나의 새로운 배열을 만드는 몇 가지 방법을 소개합니다. 방법 1. 반복문 가장 심플한 방법으로 반복문을 사용할 수 있

developer-talk.tistory.com

 

 

 

 

- 두 배열의 길이를 더한 값을 새로운 배열의 크기로 설정

- 첫 번째 배열을 순회하여 새로운 배열에 값을 할당 

- 두 번째 배열을 순회하여 새로운 배열에 값을 할당 

 

public static void main(String args[]) {
  int[] intArray1 = {1, 2, 3, 4};
  int[] intArray2 = {3, 4, 5, 6};
  int[] newArray = new int[intArray1.length + intArray2.length];
  int index = 0;

  for(int num: intArray1) {
    newArray[index++] = num;
  }

  for(int num: intArray2) {
    newArray[index++] = num;
  }

  System.out.println("intArray1: " + Arrays.toString(intArray1));
  System.out.println("intArray2: " + Arrays.toString(intArray2));
  System.out.println("newArray: " + Arrays.toString(newArray));
출처: https://developer-talk.tistory.com/673 [DevStory:티스토리]

 

 

정답 

 

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

class Solution {
    public int[] solution(int[] arr, int[][] intervals) {
        
        int a1 = intervals[0][0];
        int b1 = intervals[0][1];
        int a2 = intervals[1][0];
        int b2 = intervals[1][1];
        
        int arr1[] = Arrays.copyOfRange(arr,a1,b1+1);
        int arr2[] = Arrays.copyOfRange(arr,a2,b2+1);
        
        int answer[] = new int[arr1.length+arr2.length];
        int idx=0;
        
        for(int n : arr1)
        {
            answer[idx++] = n;
        }
        
        for(int n : arr2)
        {
            answer[idx++] = n;
        }
        
        return answer;
    }
}