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

[프로그래머스, LV.0] 순서 바꾸기

sundori 2023. 9. 6. 15:38

목차

    #1 순서 바꾸기

    문제 설명

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

    제한사항

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

    입출력 예

    num_list n result
    {2, 1, 6} 1 {1, 6, 2}
    {5, 2, 1, 7, 5} 3 {7, 5, 5, 2, 1}

    #2 알고리즘 및 코드

    import java.util.ArrayList;
    import java.util.List;
    
    class Solution {
        public int[] solution(int[] num_list, int n) {
            List<Integer> list = new ArrayList<>();
            for(int i = n; i < num_list.length; i++){
                list.add(num_list[i]);
            }
            for(int j = 0; j < n; j++){
                list.add(num_list[j]);
            }
            return list.stream().mapToInt(i->i).toArray();
        }
    }
    -----------------------------
    실행 결과
    [7]
    [7, 5]
    [7, 5, 5]
    [7, 5, 5, 2]
    [7, 5, 5, 2, 1]
    • {2, 1, 6} -> {1번 원소, 2번 원소, 3번 원소}를 토대로 주어진 n 값 뒤 n + 1번 원소부터 arr.length원소까지 먼저 저장하고
    • 그 후 1번 원소부터 주어진 n 값인 n 번 원소까지 저장하는 순서이다.
      저장 순서. 
      {5, 2, 1, 7, 5}
      숫자 1번을 기준으로 숫자 7부터 순서대로 5까지 저장하고 5부터 1까지 저장하는 순서이다.