File tree Expand file tree Collapse file tree 4 files changed +71
-1
lines changed
Expand file tree Collapse file tree 4 files changed +71
-1
lines changed Original file line number Diff line number Diff line change 1+ <?xml version =" 1.0" encoding =" UTF-8" ?>
2+ <module type =" JAVA_MODULE" version =" 4" >
3+ <component name =" NewModuleRootManager" inherit-compiler-output =" true" >
4+ <exclude-output />
5+ <content url =" file://$MODULE_DIR$" >
6+ <sourceFolder url =" file://$MODULE_DIR$/src" isTestSource =" false" />
7+ </content >
8+ <orderEntry type =" inheritedJdk" />
9+ <orderEntry type =" sourceFolder" forTests =" false" />
10+ </component >
11+ </module >
Original file line number Diff line number Diff line change 1+ import java .io .BufferedReader ;
2+ import java .io .IOException ;
3+ import java .io .InputStreamReader ;
4+ import java .util .StringTokenizer ;
5+
6+ public class Main {
7+ static int N ;
8+ static int [] num ;
9+
10+ public static void main (String [] args ) throws IOException {
11+
12+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
13+
14+ N = Integer .parseInt (br .readLine ());
15+ num = new int [N ];
16+ int i = 0 ;
17+ StringTokenizer st = new StringTokenizer (br .readLine ());
18+ while (st .hasMoreTokens ()) {
19+ num [i ] = Integer .parseInt (st .nextToken ());
20+ i ++;
21+ }
22+
23+ if (perm ()){
24+ for (int j = 0 ; j < num .length ; j ++) {
25+ System .out .print (num [j ]+" " );
26+ }
27+ }else {
28+ System .out .println (-1 );
29+ }
30+ }
31+
32+ private static boolean perm () {
33+ int i = N -1 ;
34+ while (i >0 && num [i -1 ] >= num [i ]) i --;
35+ if (i ==0 ){
36+ return false ;
37+ }
38+ int j = N -1 ;
39+ while ( num [i - 1 ] >= num [j ]) j --;
40+
41+ int tmp = num [i -1 ];
42+ num [i -1 ]=num [j ];
43+ num [j ]=tmp ;
44+
45+
46+ j =N -1 ;
47+ // 앞자리수가 바뀔때
48+ while (i <j ){
49+ tmp = num [i ];
50+ num [i ] = num [j ];
51+ num [j ] = tmp ;
52+ i += 1 ;
53+ j -= 1 ;
54+ }
55+
56+ return true ;
57+ }
58+ }
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ public static void main(String[] args) throws IOException {
2222 //
2323 if (perm ()) {
2424 for (int i = 0 ; i < N ; i ++) {
25- System .out .println (num [i ]+" " );
25+ System .out .print (num [i ]+" " );
2626 }
2727 }else {
2828 System .out .println (-1 );
You can’t perform that action at this time.
0 commit comments