Skip to content

Commit 4e684b5

Browse files
committed
1025
1 parent cdc1234 commit 4e684b5

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

BOJ/silver/BOJ10972/src/Main.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff 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];

BOJ/silver/BOJ10973/src/Main.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff 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];

0 commit comments

Comments
 (0)