극동대학교\AI컴퓨터공학과\JAVA/프로그래머스 코딩 기초 트레이닝

[프로그래머스. LV.0] 배열 조각하기

sundori 2023. 5. 16. 00:26

목차

     

    #1 배열 조각하기

    문제 설명

    제한사항

    입출력 예

    #2 코드 및 알고리즘

    import java.util.*;
    class Solution {
        public int[] solution(int[] arr, int[] query) {
            for(int i = 0; i < query.length; i++)
                if(i % 2 == 0)
                    arr = Arrays.copyOfRange(arr, 0, query[i] + 1);
                else
                    arr = Arrays.copyOfRange(arr, query[i], arr.length);
            return arr;
        }
    }

    풀이:

    • query를 순회하면서라고 하였으니 for문을 이용해 query의 길이만큼 반복
    • for문에서 i가 짝수일 때는 arr에서 query[i]번(i가 2라면 query[2] 인덱스의 원소번) 인덱스를 제외하고 arr의 query[i]+1번 인덱스부터 뒤로 짜른다. 그러므로 copyOfRange 메소드를 이용하여 0번 인덱스 ~ query[i]번 인덱스까지 복사해 arr에 저장한다.
    • 반대로 i가 홀수일 때는 arr에서 query[i]번 인덱스를 제외하고 앞으로 짜른다.

    copyOfRange 메소드에 대해서는 이전 문제였던 n번째 원소부터에서 참고하였다.

    https://sun-dori.tistory.com/7

     

    [프로그래머스, LV.0] n번째 원소부터

    목차 #1 n번째 원소부터. 문제설명 제한사항 입출력 예 #2 코드 및 알고리즘 코드 1 -> 메소드 사용 X class Solution { public int[] solution(int[] num_list, int n) { n -= 1; int len = num_list.length - n; // n번째 원소부터

    sun-dori.tistory.com

    아.. 참고로 이문제 메소드 안쓰고 하기에 조금 어렵다...