📌Back-End/프로그래머스

Java 프로그래머스 코딩 기초 트레이닝 Day 12 리스트(배열)

구 일 2024. 5. 13. 17:06
728x90
반응형

 

 

리스트 자르기

프로그래머스 리스트 자르기 자바

 

 

import java.util.LinkedList;

/**
 * 코딩 기초 트레이닝 Day 12
 * 리스트 자르기
 */
public class Main1 {
    public static void main(String[] args) {
        int[] slicer = new int[]{1, 5, 2};
        int[] num_list = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

        int[] result = solution(3, slicer, num_list);

        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();

        result = solution(4, slicer, num_list);

        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

    public static int[] solution(int n, int[] slicer, int[] num_list) {
        LinkedList<Integer> list = new LinkedList<>();

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

        switch (n) {
            case 1 :
                for (int i = 0; i <= b; i++) {
                    list.add(num_list[i]);
                }

                break;

            case 2 :
                for (int i = a; i < num_list.length; i++) {
                    list.add(num_list[i]);
                }

                break;

            case 3 :
                for (int i = a; i <= b; i++) {
                    list.add(num_list[i]);
                }

                break;

            case 4 :
                for (int i = a; i <= b; i += c) {
                    list.add(num_list[i]);
                }

                break;
        }

        return list.stream().mapToInt(Integer::intValue).toArray();
    }
}

 

 

 

첫 번째로 나오는 음수

프로그래머스 첫 번째로 나오는 음수 자바

 

 

/**
 * 코딩 기초 트레이닝 Day 12
 * 첫 번째로 나오는 음수
 */
public class Main2 {
    public static void main(String[] args) {
        System.out.println(solution(new int[]{12, 4, 15, 46, 38, -2, 15}));
        System.out.println(solution(new int[]{13, 22, 53, 24, 15, 6}));
    }

    public static int solution(int[] num_list) {
        int answer = -1;

        for (int i = 0; i < num_list.length; i++) {
            if (num_list[i] < 0) {
                answer = i;
                break;
            }
        }

        return answer;
    }
}

 

 

 

배열 만들기 3

프로그래머스 배열 만들기 3 자바

 

 

import java.util.LinkedList;

/**
 * 코딩 기초 트레이닝 Day 12
 * 배열 만들기 3
 */
public class Main3 {
    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 3, 4, 5};
        int[][] intervals = new int[][]{{1, 3}, {0, 4}};

        int[] result = solution(arr, intervals);

        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

    public static int[] solution(int[] arr, int[][] intervals) {
        LinkedList<Integer> list = new LinkedList<>();

        for (int i = intervals[0][0]; i <= intervals[0][1]; i++) {
            list.add(arr[i]);
        }

        for (int i = intervals[1][0]; i <= intervals[1][1]; i++) {
            list.add(arr[i]);
        }

        return list.stream().mapToInt(Integer::intValue).toArray();
    }
}

 

 

 

2의 영역

프로그래머스 2의 영역 자바

 

 

/**
 * 코딩 기초 트레이닝 Day 12
 * 2의 영역
 */
public class Main4 {
    public static void main(String[] args) {
        int[] result = solution(new int[]{1, 2, 1, 4, 5, 2, 9});

        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();

        result = solution(new int[]{1, 2, 1});

        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();

        result = solution(new int[]{1, 1, 1});

        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();

        result = solution(new int[]{1, 2, 1, 2, 1, 10, 2, 1});

        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

    public static int[] solution(int[] arr) {
        int[] answer;
        int minIdx = Integer.MAX_VALUE;
        int maxIdx = Integer.MIN_VALUE;

        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == 2) {
                minIdx = Math.min(i, minIdx);
                maxIdx = Math.max(i, maxIdx);
            }
        }

        if (minIdx != Integer.MAX_VALUE) {
            int size = maxIdx - minIdx;
            int idx = 0;
            answer = new int[size + 1];

            for (int i = minIdx; i <= maxIdx; i++) {
                if (idx > size) {
                    break;
                }

                answer[idx++] = arr[i];
            }
        } else {
            return new int[]{-1};
        }

        return answer;
    }
}

 

 

 

배열 조각하기

프로그래머스 배열 조각하기 자바

 

 

import java.util.Arrays;

/**
 * 코딩 기초 트레이닝 Day 12
 * 배열 조각하기
 */
public class Main5 {
    public static void main(String[] args) {
        int[] arr = new int[]{0, 1, 2, 3, 4, 5};
        int[] query = new int[]{4, 1, 2};

        int[] result = solution(arr, query);

        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

    public static int[] solution(int[] arr, int[] query) {
        int[] answer = Arrays.copyOf(arr, arr.length);

        for (int i = 0; i < query.length; i++) {
            if (i % 2 == 0) {
                answer = Arrays.copyOfRange(answer, 0, query[i] + 1);
            } else {
                answer = Arrays.copyOfRange(answer, query[i], answer.length);
            }
        }

        return answer;
    }
}

 

 

 

728x90
반응형