문제
[1, 2, 3, 4, 5] 베열을 왼쪽으로 두칸씩 회전
[1, 2, 3, 4, 5] > [3, 4, 5, 1, 2]
풀이 (왼쪽으로 밀린 배열 보류)
public class 문제3 {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
//배열의 모든 요소를 2개 밀어냄
for(int i =0; i < 2; i++){
int temp = array[0];
//배열 모든 요소를 왼쪽으로 한칸씩 이동
for(int j = 0; j < array.length - 1; j++){
array[j] = array[j+1];
}
//마지막 요소에 임시 변수 값을 저장
array[array.length - 1] = temp;
}
for(int i = 0; i < array.length; i++){
System.out.println(array[i] + " ");
}
}
}
풀이 (밀린 배열 버림)
package ch06_배열;
public class 문제3 {
/*[1, 2, 3, 4, 5] 베열을 왼쪽으로 두칸씩 회전
*
* ex)
*
* [1, 2, 3, 4, 5] > [3, 4, 5, 1, 2]
*
* */
public static void main(String[] args) {
// 배열을 왼쪽으로 밀고 밀린 배열은 버림
int[] array = {1, 2, 3, 4, 5}; // 예시 입력 배열
// 배열 앞쪽 2개 요소 빠짐
int[] shiftedArray = new int[array.length - 2];
// 배열 왼쪽으로 2칸씩 이동
for (int i = 2; i < array.length; i++) {
shiftedArray[i - 2] = array[i];
}
// 결과 출력
for (int i = 0; i < shiftedArray.length; i++) {
System.out.print(shiftedArray[i] + " ");
}
}
}
풀이 (밀린 배열 0으로 대체)
package ch06_배열;
public class 문제3 {
public static void main(String[] args) {
// 밀린 배열값은 뒤로 이동하고 0으로 대체
int[] array = {1, 2, 3, 4, 5}; // 예시 입력 배열
// 배열 왼쪽으로 2칸씩 이동
for (int i = 2; i < array.length; i++) {
array[i - 2] = array[i];
}
// 나머지 뒷 부분 0으로 초기화
for (int i = array.length - 2; i < array.length; i++) {
array[i] = 0;
}
// 결과 출력
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}
문제 (오른쪽으로 밀린 배열 보류)
package ch06_배열;
public class 문제3 {
public static void main(String[] args) {
//배열은 오른쪽으로 2칸 밀고 밀린 배열은 보류
int[] array = {1, 2, 3, 4, 5};
//배열의 모든 요소를 오른쪽으로 2개 밀어냄
for(int i =0; i < 2; i++){
int last = array[array.length - 1];
//배열 모든 요소를 오른쪽으로 한칸씩 이동
for(int j = array.length-1; j > 0; j--){
array[j] = array[ j - 1];
}
//촛번째 마지막 요소 값에 저장
array[0] = last;
}
for(int i = 0; i < array.length; i++){
System.out.println(array[i] + " ");
}
}
}