๋ฐฐ์ด์ ์ฝ๋ฉ์์ ์์ฃผ ์ฌ์ฉ๋๋ฉฐ ๋์ผํ ์ ํ์ ์ฌ๋ฌ ๊ฐ์ ํ๋์ ๋ณ์์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ์ฝ๋๊ฐ ๋ฐฐ์ด์ ๋ฐ์ ์ํค๋ ค๋ ๋ฐ๋ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๊ฐ ์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฌธ์ ์ ๋
ผ๋ฆฌ๊ฐ ๋ง์ง๋ง ์์๋ถํฐ ์์ํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ฐฐ์ด์ ๋ค์ง์ ํ์๊ฐ ์์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฐ์ ์ ์ํํ ๋ค์ ์ฝ๋์์ ํ์ํ ๊ฒฝ์ฐ ๋ฐ์ ๋ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ๋์ฑ์ด ๋ฐฐ์ด์ ๋ค์ง๋ ๊ฒ์ Java Juniors ์ธํฐ๋ทฐ์์ ๋งค์ฐ ์ธ๊ธฐ ์๋ ์์
์
๋๋ค.
๋ฐฐ์ด์ ๋ค์ง๋ ๋ฐฉ๋ฒ
๋ฐฐ์ด์ ๋ค์ง๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ผ๋ฉฐ ์ฌ๊ธฐ์๋ 5๊ฐ์ง๋ฅผ ๊ณ ๋ คํฉ๋๋ค. ์ต์ 1์ ๊ฒฝ์ฐ ์๋ ๋ฐฐ์ด์ ๋์์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ฑ์์ง ์ถ๊ฐ ๋ฐฐ์ด(๋ด๋ฆผ์ฐจ์)์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๋ค์ง๊ณ ์ต์ 2์์๋ ๋ด๋ถ ๋ฐ์ ์ ์ฌ์ฉํฉ๋๋ค. ์์๊ณผ ๋์ ๋ฐฐ์ด ์์๊ฐ ๊ต์ฒด๋๋ ๊ณณ์์ ์ํ๋ฉ๋๋ค. ์ต์ 3์์๋ ์ปฌ๋ ์ ํ๋ ์์ํฌ์ reverse() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ ์ ์ํํฉ๋๋ค. ์ต์ 4์์๋ List.add() ๋ฐ List.remove() ๊ฐ ์ฌ์ฉ๋๊ณ ๋ง์ง๋ง์ผ๋ก ์ต์ 5์์ ์ฌ๊ท๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.์ต์ 1: ์ถ๊ฐ ์ด๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ ์ด ๋ค์ง๊ธฐ
์ถ๊ฐ ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๋ค์ง๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค . ์ด ์ต์ ์ ์๋ ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ถํฐ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ฑ์์ง๋ ์ถ๊ฐ ๋ฐฐ์ด์ ์ฌ์ฉํฉ๋๋ค. ์ฆ, ์ฒซ ๋ฒ์งธ ์์๋ ์๋ ๋ฐฐ์ด์ ๋ง์ง๋ง ์์์ ๋์ผํ๊ณ ๋ ๋ฒ์งธ ์์๋ ๋ง์ง๋ง์์ ๋ ๋ฒ์งธ ์์์ ๋์ผํ๋ฏ๋ก ์ถ๊ฐ ๋ฐฐ์ด์ด ์ฑ์์ง ๋๊น์ง ์ผ์ง๋๋ค.
import java.util.Arrays;
public class ReverseArrayDemo {
public static void main(String[] args) {
int[] array = {7, 8, 9, 10, 11};
System.out.println("Array : " + Arrays.toString(array)); // print array
// Call function to get reversed array
int[] reversedArray = reverse(array);
System.out.println("Reversed array : " + Arrays.toString(reversedArray)); // print reversed array
}
// Method returns a new reversed array, based on the array which was passed to it.
static int[] reverse(int[] array) {
int[] newArray = new int[array.length];
for (int i = 0; i < array.length; i++) {
newArray[array.length - 1 - i] = array[i];
}
return newArray;
}
}
์ด ์์ ์์๋ ๋ฐฐ์ด์ ๋ค์ง๊ณ ์ ๋ฌ๋ ๋ฐฐ์ด์ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด ๋ฐ์ ๋ ๋ฐฐ์ด์ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ์์ฑํ์ต๋๋ค. array ๊ฐ main ์์ ์ ์ธ๋ ๋ค์ reverse ๋ฉ์๋๊ฐ ํธ์ถ๋ฉ๋๋ค. ๋ฉ์๋์ ์ธ์๋ ๋ฐฐ์ด์
๋๋ค. reverse ๋ฉ์๋์์ ์ ๋ฐฐ์ด newArray ๊ฐ ์์ฑ๋๊ณ array ์ ํฌ๊ธฐ๊ฐ ๋์ผํ๋ฉฐ ์์ ํ ๋น์ด ์์ต๋๋ค. for ๋ฃจํ๋ newArray๋ฅผ ์ฑ์ฐ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ ๋ฐฐ์ด์ ์ ์ฒด ๊ธธ์ด์์ ์๋ํฉ๋๋ค . ์ด๋ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์์ ์์ํ์ฌ newArray ์ ๋ง์ง๋ง ์์์ ํ ๋นํ์ฌ ์ํ๋ฉ๋๋ค., ๊ทธ๋ฐ ๋ค์ ๋ฐฐ์ด ์ ๋ ๋ฒ์งธ ์์๋ฅผ ๊ฐ์ ธ ์์ newArray ์ ๋ ๋ฒ์งธ ๋ง์ง๋ง ์์์ ํ ๋นํ๋ ์์
๋๋ค. newArray ๋ ๊ฑฐ๊พธ๋ก ์ฑ์์ง๋๋ค. for ๋ฃจํ๊ฐ ์๋ฃ๋๋ฉด newArray๋ ์์ ํ ์ฑ์์ง๊ณ array ์ ์ ๋ฐ๋์
๋๋ค .
๋ฐฐ์ด : [7, 8, 9, 10, 11] ๋ฐ์ ๋ฐฐ์ด : [11, 10, 9, 8, 7]
์ต์ 2: ๋ฐฐ์ด์ ์์๋ฅผ ์ญ์์ผ๋ก ์ธ์
๋ฐฐ์ด์ ๋ค์ง๋ ์ด ์ต์ ์ ๊ฒฝ์ฐ ์ถ๊ฐ ๋ฐฐ์ด์ ์ฌ์ฉํ ํ์๊ฐ ์์ผ๋ฉฐ ๋ฐฐ์ด ๋ชฉ๋ก์ผ๋ก ๋ณํ๋์ง ์์ต๋๋ค. ๋์ ๋ฐฐ์ด ์์๊ฐ ์ ์๋ฆฌ์์ ์ญ์์ผ๋ก ๋ฐฐ์น๋ฉ๋๋ค . ์ด๊ฒ์ ๊ทธ๋ค์ด ์ค์ ๋ก ๊ตํ๋์์์ ์๋ฏธํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์์๋ ๋ง์ง๋ง ์์์ ๊ต์ฒด๋๊ณ ๋ ๋ฒ์งธ ์์๋ ๋ง์ง๋ง์์ ๋ ๋ฒ์งธ ์์๋ก ๊ต์ฒด๋๋ ์์ ๋๋ค. for ๋ฃจํ ๊ฐ ์ฌ์ฉ๋๋ฉฐ ์ด๊ฒ์ด ์๋ฃ๋๋ฉด ๋ฐฐ์ด์ด ๋ฐ์ ๋ฉ๋๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
import java.util.Arrays;
/*
reversing an array in-place
*/
public class ReverseArrayDemo {
public static void main(String[] args) {
int[] array = {1, 4, 9, 16, 25};
System.out.println("Array before reverse : " + Arrays.toString(array));
arrayReverse(array);
System.out.println("Array after reverse : " + Arrays.toString(array));
}
//arrayReverse is a method that reverses array in-place
static void arrayReverse(int[] array) {
for (int i = 0; i < array.length / 2; i++) {
int temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
}
}
}
์๋ ๋ฐฐ์ด์ Arrays.toString(array) ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด ๋ก ์ธ์๋ ๋ค์ ๋ฐฐ์ด์ด ์ธ์๋ก reverse ์ ์ ๋ฌ๋ฉ๋๋ค . for ๋ฃจํ์ ์ญ๋ฐฉํฅ ๋ฐฉ๋ฒ ์์๋ temp๋ผ๋ ๋ณ์๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉํฉ๋๋ค. for ๋ฃจํ ์์ ์ญ์์ ์ธ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ง๋๋ค.
- temp ์ ์ฒซ ๋ฒ์งธ ์์ ํ ๋น
- ๋ง์ง๋ง ์์๋ฅผ ์ฒซ ๋ฒ์งธ ์์์ ํ ๋น
- ๋ง์ง๋ง ์์์ ์์ ํ ๋น
๋ฐ์ ์ ๋ฐฐ์ด : [1, 4, 9, 16, 25] ๋ฐ์ ํ ๋ฐฐ์ด : [25, 16, 9, 4, 1]
์ต์ 3: Collections.reverse() ์ฌ์ฉ
Java์์๋ ๊ธฐ์กด Collections ํ๋ ์์ํฌ์ ์ผ๋ถ์ธ reverse ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๋ค์ง์ ์ ์์ต๋๋ค. ๋ฐ์ ์ ์ํด ์ฌ์ฉํฉ์๋ค.
import java.util.Arrays;
import java.util.Collections;
public class ReverseArrayDemo {
public static void main(String[] args) {
Integer[] array = {1, 4, 9, 16, 25};
System.out.println("Array before reverse : " + Arrays.toString(array));
reverse(array);
System.out.println("Array after reverse : " + Arrays.toString(array));
}
//method that reverses an array
static void reverse(Integer[] array) {
Collections.reverse(Arrays.asList(array));
}
}
main ์์ ๋ฐฐ์ด์ด ์์ฑ๋๊ณ 5๊ฐ์ ์ซ์๊ฐ ์๋ ์ ์ ๋ฐฐ์ด๋ก ์ฑ์์ง๋๋ค. ๊ทธ๋ฐ ๋ค์ Arrays.asList(array)๋ฅผ ์ฌ์ฉํ์ฌ ๋ชฉ๋ก์ผ๋ก ์ถ๋ ฅํ ๋ค์ reverse ํจ์๋ฅผ ํธ์ถํ๊ณ array๋ฅผ ์ด ํจ์์ ์ธ์๋ก ์ ๋ฌํฉ๋๋ค. reverse ์์๋ Collections.reverse ๊ฐ ์ฌ์ฉ ๋๋ฉฐ ์ด๊ฒ์ ๋ฐฐ์ด ์์ฒด๊ฐ ์๋ ๋ฐฐ์ด ๋ชฉ๋ก์ธ Arrays.asList(array) ์์ ์ฌ์ฉ๋ฉ๋๋ค . ๊ทธ๋ฐ ๋ค์ ๋ค์ ๋จ๊ณ์์๋ System.out.println์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์ญ์์ผ๋ก ์ธ์ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค . ์ด๋ฒ์๋ ๊ฐ ์์๊ฐ ๊ฐ์ ์ค์ ์ธ์๋ฉ๋๋ค.
๋ฐ์ ์ ๋ฐฐ์ด : [1, 4, 9, 16, 25] ๋ฐ์ ํ ๋ฐฐ์ด : [25, 16, 9, 4, 1]
์ต์ 4: List.add() ๋ฐ List.remove()๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด ๋ฐ์
์ด ์๋ก์ด ์ต์ ์์ List.add() ๋ฐ List.remove()๋ ๋ฐ์ ์ ์ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๊ฒ์ด ์๋ํ๋ ๋ฐฉ์์ ๋ฐฐ์ด์ด ๋ชฉ๋ก์ผ๋ก ๋ณํ๋๊ณ ๋ชฉ๋ก์ ๋ง์ง๋ง ์์๊ฐ ์ ๊ฑฐ๋์ด ๋ชฉ๋ก์ ์์ ๋ถ๋ถ์ ๋ฐฐ์น๋๋ค๋ ๊ฒ์ ๋๋ค. ์ ์ฒด ๋ชฉ๋ก์ด ๋ฐ๋ณต๋ ํ ์ ๋ชฉ๋ก์ ์๋ณธ์ ๋ฐ์ ์ ๋๋ค. main() ๋ฉ์๋ ์์ 5๊ฐ์ ์ซ์๋ก ๊ตฌ์ฑ๋ ๋ฐฐ์ด์ด ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ ์ด์ ์๋ ์ํ๊ฐ ์ฝ์์ ์ถ๋ ฅ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ๋ฐฐ์ด์ reverse() ๋ฉ์๋์ ๋ํ ์ธ์๋ก ๋ฃ์ต๋๋ค . ์ด ๋ฐฉ๋ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐฐ์ด์ ์์ ์ฝ์ ํ๋ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ด๋ ์ด์ ์๋ก์ด(๋ฐ์ ๋) ์ํ๊ฐ ์ฝ์์ ์ถ๋ ฅ๋ฉ๋๋ค. ๋ฐ๋๋ก ()๋ฉ์๋์์ ๋ฐฐ์ด์ ๋ฐ์ ์ ์ํํ๊ธฐ ์ํด add() ๋ฐ remove() ๋ฉ์๋๋ฅผ ํ์ฑํํ๊ธฐ ์ํด Arrays.asList(array) ๋ฅผ ํตํด ๋ชฉ๋ก์ ๊ธฐ๋ก๋ฉ๋๋ค . ์ด ๋ฐฉ๋ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐฐ์ด์ ์์ ์ฝ์ ํ๋ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. reverse() ๊ฐ ์ฌ์ฉํ๋ ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. for ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชฉ๋ก ์์์ ๋ฐ์ ์ ์ํํฉ๋๋ค. ๋ณ์ i ๋ฅผ ์ด๊ธฐํํ์ฌ ์ด๋ฅผ ์ํํฉ๋๋ค . ์ฒ์์ i๋ 0์ผ๋ก ์ค์ ๋ฉ๋๋ค . i = 0 ์ผ ๋ ๋ชฉ๋ก ์์ list.size() - 1 ์ ์๋ ์์๊ฐ ์ ๊ฑฐ๋๊ณ i < list.size() - 1 ์ด๋ฏ๋ก ํญ์ ๋ง์ง๋ง ์์๊ฐ ๋ฉ๋๋ค.. remove() ๋ฉ์๋๋ ์ ๊ฑฐํ ์์๋ฅผ ๋ฐํํ๋ฏ๋ก ์ด ์์๋ ์ด์ ์ธ๋ฑ์ค i = 0 ์์ ๋ชฉ๋ก์ ์ถ๊ฐ๋ฉ๋๋ค . ์ฆ, ์ฒ์์ ์ฝ์ ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ชฉ๋ก์ ๋๋จธ์ง ๋ถ๋ถ์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ์ง๋ง ์ ๋ชฉ๋ก์๋ ์ฌ์ ํ ๋์ผํ ์์ ์์(์: ํฌ๊ธฐ) ๊ฐ ์์ต๋๋ค . i , i = 1 ์ ๋ค์ ๊ฐ์ผ๋ก for ๋ฃจํ ์คํ์ ๊ณ์ํ๋ฉด ๋์ผํ ์ผ๋ จ์ ๋จ๊ณ๊ฐ ์ํ๋์ด ๋ง์ง๋ง ์์๊ฐ ์ ๊ฑฐ๋๊ณ i = 1 ์์ ์ซ์๋ก ์ ๋ ฅ๋๊ณ ๋ชฉ๋ก์ด ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํฉ๋๋ค. ์ด๊ฒ์ i ์ ๋ง์ง๋ง ์ฆ๋ถ ๊ฐ ๊ณผ ๋ชฉ๋ก์ ๋ชจ๋ ์์๊ฐ ๋ณ๊ฒฝ๋ ๋๊น์ง ๊ณ์๋ฉ๋๋ค. ๋ ๋ฒ์งธ ๋ก์ธ๋ฑ์ค i๊ฐ ์๋ ๋ชฉ๋ก์ ๋ฃจํ ์์๋ ์ธ๋ฑ์ค i๊ฐ ์๋ ๋ฐฐ์ด ์์๋ก ์ค์ ๋ฉ๋๋ค. ์ฌ๊ธฐ์ i ๋ 0์์ list.size() - 1๊น์ง ์ ๋๋ค . ์์ฝํ๋ฉด ์ฌ์ฉ๋ ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋จ๊ณ:- ๋๋ = 0
- list.size() ์์ ์์ ์ ๊ฑฐ - 1
- list.size() - 1 , i = 0 ์ ์๋ ์์ ์ฝ์
- ์ฆ๋ถ i
- i์ ๋ง์ง๋ง ์ฆ๋ถ ๊ฐ์ด ์ฌ์ฉ๋ ๋๊น์ง 2~4๋จ๊ณ๋ฅผ ๋ฐ๋ณตํฉ๋๋ค(3๋จ๊ณ์์ i์ ๋ํ ์ ๊ฐ ํฌํจ).
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ReverseArrayDemo {
public static void main(String[] args) {
Integer[] array = new Integer[]{1, 4, 9, 16, 25};
System.out.println("Array before reverse : " + Arrays.toString(array));
reverse(array);
System.out.println("Array after reverse : " + Arrays.toString(array));
}
static void reverse(Integer[] array) {
List list = new ArrayList<>(Arrays.asList(array));
for (int i = 0; i < list.size() - 1; i++) {
list.add(i, list.remove(list.size() - 1));
}
for (int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}
}
}
์ด ์ฝ๋๋ ์ถ๋ ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ฐ์ ์ ๋ฐฐ์ด : [1, 4, 9, 16, 25] ๋ฐ์ ํ ๋ฐฐ์ด : [25, 16, 9, 4, 1]
์ต์ 5: ์ฌ๊ท๋ก ๋ฐฐ์ด ๋ฐ์
์ฌ๊ท ๋ฐฉ๋ฒ์ ์ฝ๋ฉ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ ๋ฐฐ์ด์ ๋ค์ง๋ ๋ฐฉ๋ฒ์ ๋ํ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ์ต์ ์์ ๋ฐฐ์ด์ ๋ชฉ๋ก์ผ๋ก ๋ณํ๋ ๋ค์ ๋ชฉ๋ก์ ๋์์ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ ๋๋ง๋ค ์ฝ๋๊ฐ reverse() ๋ฉ์๋๋ก ์ด๋ํ๊ณ ๋ชฉ๋ก์๋ ์ ๊ฑฐ๋ ๊ฐ์ด ์ญ์์ผ๋ก ์ถ๊ฐ๋ฉ๋๋ค. ์ด์ ๋ฐฉ๋ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก 5๊ฐ์ ์ซ์๋ก ๊ตฌ์ฑ๋ ๋ฐฐ์ด์ด ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํจ์ reverse() ์ ์ธ์๋ก ์ ๋ฌ๋ฉ๋๋ค . reverse() ์์ ์ํ๋๋ ์ฒซ ๋ฒ์งธ ์์ ์ ๋ฐฐ์ด์ ๋ชฉ๋ก์ผ๋ก ๋ฐ๊พธ๊ณ ๋ชฉ๋ก ํฌ๊ธฐ๋ฅผ ํ์ธํ๋ ๊ฒ์ ๋๋ค. ์์๊ฐ ํ๋๋ง ์๊ฑฐ๋ null์ธ ๊ฒฝ์ฐ ๋ฉ์๋๊ฐ ์๋ฃ๋๊ณ ๋ฐํ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์์๊ฐ ์ ๊ฑฐ๋์ง๋ง Integer ์ ๋ณต์ฌ๋ฉ๋๋ค., ๊ฐ . ๊ทธ๋ฐ ๋ค์ reverse() ๋ฉ์๋ ๊ฐ ๋ค์ ํธ์ถ๋๊ณ ์ฌ๊ท๊ฐ ๋ค์ ์์๋ฉ๋๋ค. ํจ์๊ฐ ์ ๋ ฅ๋๋ฉด ๋์ผํ ๋จ๊ณ๊ฐ ์ํ๋ฉ๋๋ค. ํฌ๊ธฐ ๊ฒ์ฌ์์ ๋ชฉ๋ก์ด 1๋ณด๋ค ํฌ๋ฉด ๋ค์ ๋จ๊ณ๋ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ ๊ฑฐํ ๋ค์ ์ฌ๊ท๋ฅผ ๋ค์ ์ํํ๋ ๊ฒ์ ๋๋ค. ๋ชฉ๋ก ์ ํฌ๊ธฐ๊ฐ 1 ์ผ ๋ reverse()๋ ํธ์ถ๋ ์์น๋ก ๋์๊ฐ๊ณ ๋ชฉ๋ก์ ๊ฐ ๊ฐ์ ์ถ๊ฐํ์ฌ ์๋ ๋ชฉ๋ก๊ณผ ์ ํํ ๋ฐ๋๋ก ๋ง๋ญ๋๋ค.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ReverseArrayDemo {
public static void main(String[] args) {
Integer[] array = new Integer[]{1, 4, 9, 16, 25};
System.out.println("Array before reverse : " + Arrays.toString(array));
List list = new ArrayList<>(Arrays.asList(array));
reverse(list);
System.out.println("Array after reverse : " + Arrays.toString(list.toArray()));
}
public static void reverse(List list) {
if (list== null || list.size() <= 1) {
return;
}
Integer value = list.remove(0);
reverse(list);
list.add(value);
}
}
์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฐ์ ์ ๋ฐฐ์ด : [1, 4, 9, 16, 25] ๋ฐ์ ํ ๋ฐฐ์ด : [25, 16, 9, 4, 1]
GO TO FULL VERSION