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] + " ");
}
}
}
결과
'코딩 문제 > 매일프로그래밍' 카테고리의 다른 글
매일프로그래밍 - 유닉스 파일 경로로 변경 (0) | 2021.02.01 |
---|---|
매일프로그래밍 - 최대 공약수 구하기 (0) | 2021.02.01 |
매일프로그래밍 - 배열 안 해당문자 여부 확인 (0) | 2021.02.01 |
매일프로그래밍 - 정수 배열 정렬 알고리즘 구현 (0) | 2021.02.01 |
매일프로그래밍 - 입력받은 배열 원소 순환 확인 (0) | 2021.01.27 |