MapleStory Finger Point

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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - java ๋ฆฌ์ŠคํŠธ ์ž๋ฅด๊ธฐ

HYEJU01 2024. 4. 30. 12:44

๐Ÿ’ก ์ข‹์€ ์ฝ”๋“œ

 

์ดˆ๋ฐ˜์—๋Š” Arrays.copyofRange ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž˜๋ผ์คฌ๊ณ 

์ดํ›„ n == 4 ์ผ ๋•Œ์—๋Š” ๋™์ ๋ฐฐ์—ด์„ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์ฐจ๋ก€๋Œ€๋กœ ์‚ฝ์ž…ํ•ด์ค€๋‹ค์Œ์—

๋™์ ๋ฐฐ์—ด์„ ์ •์ˆ˜๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋ฉด ๋ !!

import java.util.*;
class Solution {
    public int[] solution(int n, int[] slicer, int[] num_list) {
        int a = slicer[0];
        int b = slicer[1];
        int c = slicer[2];
        if(n ==1)
            return Arrays.copyOfRange(num_list, 0, b+1);
        if(n==2)
            return Arrays.copyOfRange(num_list, a, num_list.length);
        if(n==3)
            return Arrays.copyOfRange(num_list, a, b+1);
            
      List<Integer> result = new ArrayList<>();  // n = 4์ผ๋•Œ ๋”ฐ๋กœ ๋‹ด์•„์ค„ ๋™์  ๋ฐฐ์—ด
      
        for (int i = a; i <= b; i += c) { 
            result.add(num_list[i]); // ๋™์  ๋ฐฐ์—ด์— ์ถ”๊ฐ€
        }
        int[] answer = new int[result.size()];  // ์ •์ˆ˜๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜๋ฏ€๋กœ ๋ณ€ํ™˜์‹œํ‚ค๊ธฐ
        for (int i = 0; i < result.size(); i++) { 
            answer[i] = result.get(i); // ์‚ฝ์ž…ํ•ด์ฃผ๋ฉด ๋
        }
        return answer;
    }
}

 

  1. Arrays.copyOf() :  ๋ฐฐ์—ด ์ „์ฒด๋ฅผ ๋ณต์‚ฌ
  2. Arrays.copyOfRange() :  ํŠน์ • ๋ฒ”์œ„๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. 
  3. IntStream.range() :  ์ •์ˆ˜ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ
  4. map()  ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ์ ์šฉ
  5. toArray()๋Š” ์ŠคํŠธ๋ฆผ์˜ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ตœ์ข… ์—ฐ์‚ฐ
import java.util.Arrays;
import java.util.stream.IntStream;

class Solution {
    public int[] solution(int n, int[] slicer, int[] num_list) {

        int[] answer = null;
        int a = slicer[0], b = slicer[1], c = slicer[2]; 

        switch (n) {
        case 1:
            answer = Arrays.copyOf(num_list, b + 1); // ์ฒ˜์Œ ~ b 
            break;
        case 2:
            answer = Arrays.copyOfRange(num_list, a, num_list.length); // a ~ ๋๊นŒ์ง€
            break;
        case 3:
            answer = Arrays.copyOfRange(num_list, a, b + 1); //a, b ๊นŒ์ง€
            break;
        case 4:
            answer = IntStream.range(0, (b - a) / c + 1).map(i -> num_list[a + i * c]).toArray();
            // 0๋ถ€ํ„ฐ (b-a)/c+1 ๊นŒ์ง€ ์ •์ˆ˜ ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ
            // ์•ž์—์„œ ์„ ํƒ๋œ ์š”์†Œ i => ๋ฅผ  a+i*c ๋กœ ๊ณ„์‚ฐ ํ›„ => ์„ ํƒ๋œ ๊ฐ’์œผ๋กœ ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ ํ›„
            // ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜
            break;
        }

        return answer;
    }
}

 

 


 

๐Ÿ˜ญ 1์ฐจ ์˜ค๋ฅ˜ : switch ๋ฌธ์—์„œ case ๋งˆ๋‹ค break๋ฌธ์„ ๋น ๋œจ๋ ธ๋‹ค.

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

class Solution {
    public  ArrayList <Integer> solution(int n, int[] slicer, int[] num_list) {
            ArrayList <String> str_list = new ArrayList<String>();
            ArrayList <Integer> answer = new ArrayList<>();
        
            String str = Arrays.toString(num_list); //๋ฐฐ์—ด ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ๊ธฐ
            str = str.replace("[", "").replace("]", "").replace(",","").replace(" ","");
        
            int a = slicer[0];
            int b = slicer[1];
            int c = slicer[2];
            
        switch (n) {
            case 1:
                str_list.add(str.substring(0,b+1));
            case 2:
                str_list.add(str.substring(a,num_list.length));
            case 3:
                str_list.add(str.substring(a,b+1));
            case 4:
                for (int i = a; i <= b; i+=c){ //1~5  
                    str_list.add(String.valueOf(num_list[i]));
                }              
            }
            
            for (int j = 0; j<str_list.size(); j++){
                answer.add(Integer.parseInt(str_list.get(j)));
            }
        
        return answer;
    }
}

 

 

 

๐Ÿ˜ญ2์ฐจ ์˜ค๋ฅ˜ : ์ด๋Ÿฐ์ €๋Ÿฐ ๋ฌธ์ž์—ด <-> ์ •์ˆ˜ ๋ณ€ํ™˜์„ ํ•ด๊ฒฐํ–ˆ๋Š”๋ฐ ...!!!

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ๋งž์•˜์ง€๋งŒ ์ œ์ถœํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธด๋‹ค ใ… 

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

class Solution {
    public  ArrayList <Integer> solution(int n, int[] slicer, int[] num_list) {
            ArrayList <String> str_list = new ArrayList<String>();
            ArrayList <Integer> answer = new ArrayList<>();
            String tmp = "";
        
            String str = Arrays.toString(num_list); //๋ฐฐ์—ด ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ๊ธฐ
            str = str.replace("[", "").replace("]", "").replace(",","").replace(" ","");
        
            int a = slicer[0];
            int b = slicer[1];
            int c = slicer[2];
            
        switch (n) {
            case 1:
                tmp = str.substring(0,b+1); // ๋ฌธ์ž์—ด์— ์‚ฝ์ž…
                   break;
            case 2:
                tmp = str.substring(a,num_list.length);
                   break;
            case 3:
                tmp = str.substring(a,b+1);
                   break;
            case 4:
                for (int i = a; i <= b; i+=c){ //1~5  
                    str_list.add(String.valueOf(num_list[i]));
                }        
                   break;
            }
            
        
                if ( n == 1 || n == 2 || n == 3){
                for (int j = 0; j < tmp.length(); j++){
                    char ch = tmp.charAt(j); //๋ฌธ์ž ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์˜ค๊ธฐ
                    answer.add(Integer.valueOf(""+ch)); //
                }
                    
                }else {
            for (int j = 0; j < str_list.size(); j++){
              answer.add(Integer.parseInt(str_list.get(j)));
            }
        }
               
        
        return answer;
    }
}