Day 13 리스트(배열)

Day13 13단계 20231101

1. n 번째 원소부터

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[num_list.length-n+1];
        for(int i = n-1; i < num_list.length; i++) {
            answer[i-(n-1)] = num_list[i];
        }
        return answer;
    }
}
Arrays.copyOfRange(num_list, n-1, num_list.length);

2. 순서 바꾸기

class Solution {
    public int[] solution(int[] num_list, int n) {
        int temp = 0;
        for(int i = 0; i < num_list.length - n; i++) {
            for (int j = n+i; j >= 1+i; j--) {
                temp = num_list[j];
                num_list[j] = num_list[j-1];
                num_list[j-1] = temp;
            }
        }
        return num_list;
    }
}
IntStream.range(0, num_list.length).map(i -> num_list[(i + n) % num_list.length]).toArray();

3. 왼쪽 오른쪽

import java.util.*;
class Solution {
    public String[] solution(String[] str_list) {
        String str = "";
        String[] answer = {};
        int index = 0;
        for(int i = 0; i < str_list.length; i++) {
            if (str_list[i].equals("l")) {
                str = str_list[i];
                index = i;
                break;
            } else if (str_list[i].equals("r")) {
                str = str_list[i];
                index = i;
                break;
            }
        }
        
        switch (str) {
            case "l" :
                if(index != 0) { answer =  Arrays.copyOfRange(str_list, 0, index); }
                break;
            case "r":
                if(index != str_list.length - 1) { answer = Arrays.copyOfRange(str_list, index+1, str_list.length); }
                break;
        }
        return answer;
    }
}

5. n개 간격의 원소들

class Solution {
    public int[] solution(int[] num_list, int n) {
        int len = (num_list.length%n == 0) ? num_list.length/n : num_list.length/n+1;
        int[] answer = new int[len];
        int index = 0;
        for(int i = 0; i < len; i++) {
            answer[i] = num_list[index];
            index += n;
        }
        return answer;
    }
}
for (int i = 0;i < num_list.length; i+=n)
    answer[idx++] = num_list[i];
return answer;