순서 바꾸기

nacSeo (낙서)·2024년 2월 16일
0

프로그래머스

목록 보기
75/169

문제 설명

정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.

제한사항

2 ≤ num_list의 길이 ≤ 30
1 ≤ num_list의 원소 ≤ 9
1 ≤ n ≤ num_list의 길이

나의 코드

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[num_list.length];
        System.arraycopy(num_list, n, answer, 0, num_list.length-n);
        System.arraycopy(num_list, 0, answer, num_list.length-n, n);
        return answer;
    }
}

다른 사람 코드

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

for문 사용

느낀 점

이 전 문제에서 다른 사람 코드에서 봤던 copyOfRange()메소드를 공부하다가 함께 공부한 arraycopy() 메소드를 활용하여 문제를 해결하였다. 다만, 조금만 복잡해지면 배열의 요소/길이와 인덱스의 크기 사이에서 혼돈이 와서 능수능란하게 다룰 수 있도록 익숙해질 필요성을 느꼈다. 🥲

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글