File tree Expand file tree Collapse file tree 2 files changed +12
-4
lines changed
Expand file tree Collapse file tree 2 files changed +12
-4
lines changed Original file line number Diff line number Diff line change @@ -30,21 +30,27 @@ public static void main(String[] args) throws IOException {
3030 }
3131
3232 private static boolean perm () {
33+ //먼저 배열의 뒤 부터 두개씩 비교하여 뒷부분의 숫자가 더 큰 경우가 있는 인덱스를 찾는다.
34+ //없는 경우 -1를 출력하고 종료한다.
3335 int i = N -1 ;
3436 while (i >0 && num [i -1 ] >= num [i ]) i --;
3537 if (i ==0 ){
3638 return false ;
3739 }
40+ //i-1를 이후로 경계로 두어 배열의 뒤에서 부터 i-1과 비교하여 i-1보다 큰 값을 찾는다.
41+ //예 3 4 | 1 2 5 로 나뉘고 뒤부터 앞의 경계값인 2와 비교한다.
3842 int j = N -1 ;
3943 while ( num [i - 1 ] >= num [j ]) j --;
4044
45+ //i-1자리와 j를 스왑하여 위치 바꾼다.
46+ //예 3 4 1 5 2
4147 int tmp = num [i -1 ];
4248 num [i -1 ]=num [j ];
4349 num [j ]=tmp ;
4450
45-
51+ //i-1 자리 이후 정렬이 필요한 경우
52+ //i-1 이후 i~N-1 자리까지 오름 차순으로 정렬 한다.
4653 j =N -1 ;
47- // 앞자리수가 바뀔때
4854 while (i <j ){
4955 tmp = num [i ];
5056 num [i ] = num [j ];
Original file line number Diff line number Diff line change @@ -40,19 +40,21 @@ private static boolean perm() {
4040 if (i <= 0 ) return false ;
4141
4242 //i-1를 이후로 경계로 두어 배열의 뒤에서 부터 i-1과 비교하여 i-1보다 작은 값을 찾는다.
43- //예 3 4 | 1 2 5 로 나뉘고 뒤부터 앞의 경계값인 4와 바교한다 .
43+ //예 3 4 | 1 2 5 로 나뉘고 뒤부터 앞의 경계값인 4와 비교한다 .
4444 int j = N - 1 ;
4545 while (j > 0 && num [i - 1 ] <= num [j ]) j --;
4646
4747 //i-1자리와 j를 스왑하여 위치 바꾼다.
48- //예 3 2 1 2 5
48+ //예 3 2 1 4 5
4949 int tmp = num [i - 1 ];
5050 num [i - 1 ] = num [j ];
5151 num [j ] = tmp ;
5252
53+ //i -1 자리 이후 내림 차순으로 정렬이 필요한 경우
5354 //i-1 이후 i~N-1 자리까지 내림 차순으로 정렬 한다.
5455 // 3 2 | 1 4 5 => 3 2 5 4 1
5556 j = N - 1 ;
57+
5658 while (i < j ) {
5759 tmp = num [i ];
5860 num [i ] = num [j ];
You can’t perform that action at this time.
0 commit comments