Teddy Bear Holding A Heart Balloon [๊ธฐ์ดˆ] ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ 3
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿฅ‡ Coding Test/์˜ค๋‹ต๋…ธํŠธ

[๊ธฐ์ดˆ] ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ 3

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

[ ๋ฌธ์ œ์„ค๋ช… ]

์ •์ˆ˜ ๋ฐฐ์—ด arr์™€ 2๊ฐœ์˜ ๊ตฌ๊ฐ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด intervals๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

intervals๋Š” ํ•ญ์ƒ [[a1, b1], [a2, b2]]์˜ ๊ผด๋กœ ์ฃผ์–ด์ง€๋ฉฐ ๊ฐ ๊ตฌ๊ฐ„์€ ๋‹ซํžŒ ๊ตฌ๊ฐ„์ž…๋‹ˆ๋‹ค. ๋‹ซํžŒ ๊ตฌ๊ฐ„์€ ์–‘ ๋๊ฐ’๊ณผ ๊ทธ ์‚ฌ์ด์˜ ๊ฐ’์„ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ๊ตฌ๊ฐ„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ๋ฐฐ์—ด arr์˜ ์ฒซ ๋ฒˆ์งธ ๊ตฌ๊ฐ„์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฐ์—ด๊ณผ ๋‘ ๋ฒˆ์งธ ๊ตฌ๊ฐ„์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฐ์—ด์„ ์•ž๋’ค๋กœ ๋ถ™์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

[ ํ’€์ด๊ณผ์ • ] 

import java.util.*; 

class Solution {
    public int[] solution(int[] arr, int[][] intervals) {
    
    	//intervals์˜ ๊ฐ ์›์†Œ๋“ค ๋ณ€์ˆ˜๋กœ ์„ ์–ธ
        int start1 = intervals[0][0]; 
        int end1 = intervals[0][1];
        int start2 = intervals[1][0];
        int end2 = intervals[1][1];
		
        //copyOfRange๋ฉ”์†Œ๋“œ ์‚ฌ์šฉํ•ด์„œ intervals์— ํ•ด๋‹นํ•˜๋Š” ๊ตฌ๊ฐ„์˜ ๋ฐฐ์—ด ์ถ”์ถœ
        //๊ฐ๊ฐ arr1, arr2์— ๋‹ด์Œ
        int[] arr1 = Arrays.copyOfRange(arr, start1, end1+1);
        int[] arr2 = Arrays.copyOfRange(arr, start2, end2+1);
        
        //์ •๋‹ต๋ฐฐ์—ด answer ์„ ์–ธ
        int[] answer = new int[arr1.length + arr2.length]; 
        
        //answer๋ฐฐ์—ด์— arr1, arr2 ์›์†Œ๋“ค ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด์•„์ฃผ๊ธฐ
        int idx = 0;
        for (int i=0; i<arr1.length; i++) {
            answer[idx++] = arr1[i];
        }
        
         for (int i=0; i<arr2.length; i++) {
            answer[idx++] = arr2[i];
        }
        
        return answer;
    }
}