본문 바로가기

코딩 문제/매일프로그래밍

매일프로그래밍 - 원소 이동

728x90

Q. 정수 배열과 정수 k가 주어지면 모든 원소를 k 칸씩 앞으로 옮기시오.

EX.

Input : [ 1, 2, 3, 4, 5 ], k = 2
Output : [ 3, 4, 5, 1, 2 ]

Input : [ 0, 1, 2, 3, 4 ], k = 1
Output : [ 1, 2, 3, 4, 0 ]

 

 

풀이

 

import java.util.Scanner;

 

public class javatest {

 

      public static void main(String[] args) {

 

            String[] arr = null; // 입력받은 값 구분자로 나눈 배열

            int num = 0; // 이동할 값

            String change = ""; // 교체 변수

            int max = 0; // 교체 할 자리의 최대 수

            // 정수 배열 입력받기

            System.out.println("정수 배열을 ,를 구분자로 입력해주세요.");

            Scanner scan = new Scanner(System.in);

            arr = scan.nextLine().split(","); // 입력받은 값 배열에 넣기

            System.out.println("이동할 값을 입력해주세요.");

            scan = new Scanner(System.in);

            num = Integer.parseInt(scan.nextLine()); // 이동 할 값 변수에 넣기

 

            // 계산

            for(int i=num-1; i>=0; i--) {

                  max = num - i - 1;

                  for(int j=i+1; j<arr.length-max; j++) {

                        change = arr[j-1];

                        arr[j-1] = arr[j];

                        arr[j] = change;

                  }

            }

            // 출력

            for(int i=0; i<arr.length; i++) {

                  System.out.print(arr[i] + " ");

            }

      }

}

 

 

결과