MapleStory Finger Point Cute Line Smiley Blinking Hello Kitty Angel MapleStory Finger Point

๐Ÿƒ‍โ™€๏ธprogrammers/Java

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - java ๋ฐฐ์—ด ์กฐ๊ฐํ•˜๊ธฐ

HYEJU01 2024. 4. 30. 17:13

 

๐Ÿ’ก ์ข‹์€ ์ฝ”๋“œ ! start , end  ์ด์šฉํ•ด์„œ ํ’€๊ธฐ 

start ๊ฐ’์€ ํ™€์ˆ˜์ธ qeury ๊ฐ’์ด ๋˜๊ณ 

end ๊ฐ’์€ ์ง์ˆ˜์ธ (query ๊ฐ’ - 1) ์ด ๋œ๋‹ค! ์ด๋•Œ start ๋ฅผ ๋”ํ•ด์ค˜์•ผ ์ „์ฒด๊ธธ์ด๊ฐ€ ๋‚˜์™€์„œ end ๊นŒ์ง€ ์ถœ๋ ฅ์ด ๋จ. 

 

๐Ÿ’ฌ Arrays.copyOfRange() :: ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์ƒˆ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ์›๋ณธ ๋ฐฐ์—ด๊ณผ ๋ณต์‚ฌํ•  ์š”์†Œ์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค์™€ ๋ ์ธ๋ฑ์Šค๋ฅผ ์ธ์ˆ˜๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int[] query) {
        int start = 0; //์‹œ์ž‘๊ฐ’ ๊ธฐ๋ณธ๊ฐ’
        int end = arr.length - 1;  //๋๊ฐ’ ๊ธฐ๋ณธ๊ฐ’
        
        for (int i = 0; i < query.length; i++) {
            if (i % 2 == 0) { // ์ง์ˆ˜๋ฉด
                end = start + query[i] - 1;
       
            } else {
                start += query[i]; // ์•ž์„ ์ž˜๋ผ์•ผํ•จ => ์‹œ์ž‘๊ฐ’ ์กฐ์ •
            }
        }

        return Arrays.copyOfRange(arr, start, end + 2); // ๋ฐฐ์—ด ๋ณต์‚ฌ
    }
}

 

 

๐Ÿ’ก ์ข‹์€ ์ฝ”๋“œ !  ์ž๋ฃŒ๊ตฌ์กฐ ํ ์ด์šฉํ•˜๊ธฐ (ArrayList ๋Š” ์‚ฝ์ž… ์‚ญ์ œ์— ๋น„ํšจ์œจ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์ž„) 

 

 ๐Ÿ’ฌ Deque ๋ฐํ :: ์–‘์ชฝ ๋์—์„œ ์š”์†Œ์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋ฅผ ์ง€์›ํ•˜๋Š” ์ปฌ๋ ‰์…˜, ์ธํ„ฐํŽ˜์ด์Šค์˜ ํฌ๊ธฐ ์กฐ์ • ๊ฐ€๋Šฅํ•œ ๋ฐฐ์—ด ๊ธฐ๋ฐ˜ ๊ตฌํ˜„์œผ๋กœ, ์–‘์ชฝ ๋์—์„œ์˜ ๋น ๋ฅธ ์š”์†Œ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ๋ฅผ ์ œ๊ณต

๐Ÿ’ฌ  pollLast() ๋ฉ”์„œ๋“œ๋Š” ๋ฐํ์—์„œ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฐํ๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด null์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ฌ .pollFirst() ๋ฉ”์„œ๋“œ๋Š” ๋ฐํฌ(Deque)์—์„œ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int[] query) {
        Deque<Integer> list = new ArrayDeque<>(); // ๋ฐํ ์„ ์–ธ
        
        for (int i : arr) { // ๋ฐํ์— arr ์‚ฝ์ž…
            list.add(i);
        }
        for (int i = 0; i < query.length; i++) {
            int len = list.size(); 
            int q = query[i];
            if (i % 2 == 0) {
                for (int j = 1; j < len - q; j++) {
                    list.pollLast(); // ๋งˆ์ง€๋ง‰ ์š”์†Œ ์ œ๊ฑฐ ํ›„ ๋ฐ˜ํ™˜
                }
            } else {
                for (int j = 0; j < q; j++) {
                    list.pollFirst(); //์ฒซ๋ฒˆ์งธ ์š”์†Œ ์ œ๊ฑฐ ํ›„ ๋ฐ˜ํ™˜ 
                }
            }
        }
        
        int[] answer = new int[list.size()]; // ์ผ๋ฐ˜๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜
        
        for (int i = 0; i < answer.length; i++) {
            answer[i] = list.pollFirst();  //์ฒซ๋ฒˆ์งธ ์š”์†Œ ์ œ๊ฑฐ ํ›„ ๋ฐ˜ํ™˜ 
        }
        return answer;
    }
}

 


 

์‹คํŒจํ•œ ์ฝ”๋“œ ใ…œใ…œ

import java.util.ArrayList;

class Solution {
    public  ArrayList <Integer> solution(int[] arr, int[] query) {
        ArrayList <Integer> answer = new ArrayList<Integer>();
        
          for (int n : arr) { // ๋™์ ๋ฐฐ์—ด์„ ๊ธฐ์กด๋ฐฐ์—ด๋กœ ์ดˆ๊ธฐํ™”
            answer.add(n);
        }
        
        for (int i = 0; i < query.length; i++){ // 0 1 2 ๊นŒ์ง€  => 3๋ฒˆ ๋ˆ๋‹ค
                if ( i % 2 == 0 ){ //์ธ๋ฑ์Šค ๊ฐ’์ด ์ง์ˆ˜๋ฉด
                    for (int j = query[i] ; j <= answer.size(); j++){ //ํ•ด๋‹น๊ฐ’ ๋’ค๋กœ ์‚ญ์ œ 
                        answer.remove(j);
                    }
                }else {
                    for (int k = 0; k < query[i]; k++){
                        answer.remove(k);
                    }
                }   
            }
        return answer;
    }
}