배열의 모든 순열을 재귀적으로 호출하고 출력하는 코드입니다. 여기서 사용되는 개념은 백트래킹과 교환(swap)입니다. 이 알고리즘은 재귀적으로 순열을 생성하며, 각 단계에서 현재 위치(i)를 기준으로 나머지 위치(j)를 교환하여 순열을 생성합니다. 이때 백트래킹을 통해 이전 상태로 돌아갈 수 있도록 배열을 다시 원래대로 되돌립니다. /** 알고리즘 1,2,3 / | \ 123 213 321 i=0, j=0~2 / | \ 123,132 213,231 321,312 i=1, j=1~2 (j가 증가하면서 swap을 한다.) */ public class Permutations { /** * 1,2,3으로 만들 수 있는 모든 경우의 수를 출력한다. */ @Test public void 순열(){ int[] arr..