-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathBigSorting.java
More file actions
71 lines (60 loc) ยท 1.97 KB
/
BigSorting.java
File metadata and controls
71 lines (60 loc) ยท 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package hackerrank;
import java.util.Arrays;
import java.util.Scanner;
public class BigSorting {
static String[] bigSorting(String[] unsorted) {
//String ํ์
์ ์ ๋ ฌ์๋ ๋ฐฐ์ด์ ์ซ์์ค๋ฆ์ฐจ์์ผ๋ก ์ซ์๋ฅผ ์ ๋ ฌํ๋ ๋ฌธ์ .
//์ฒซ์๋ -์คํจ-> Exception in thread "main" java.lang.NumberFormatException: For input string: "31415926535897932384626433832795"
/*
//String arr๋ฅผ long arr๋ก ๋ฐ๊พผ๋ค.
long[] arr = new long[unsorted.length];
for (int i = 0; i < unsorted.length; i++) {
arr[i] = Long.parseLong(unsorted[i]);
}
//long ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ ๋ ฌํ๋ค.
Arrays.sort(arr);
//์ ๋ ฌํ long๋ฐฐ์ด์ String ๋ฐฐ์ด๋ก ๋ฐ๊พผ ๋ค ๋ฆฌํดํ๋ค.
String[] result = new String[unsorted.length];
for (int i = 0; i < unsorted.length; i++) {
result[i] = Long.toString(arr[i]);
}
System.out.println(Arrays.toString(result));
return result;
*/
//sol4 ๋๋ค์ + sort
// System.out.println(Arrays.toString(unsorted));
Arrays.sort(unsorted, (x, y) -> {
// System.out.print("์์ arr: "+Arrays.toString(unsorted) + " x: "+x+" y:"+y);
if (x.length() == y.length()) {
// System.out.print(" x.compareTo(y): "+x.compareTo(y)+"\n");
return x.compareTo(y); //์๋ฆฌ์์ ์๊ด์์ด ์ฒซ์งธ์๋ฆฌ๋ง ๋ณด๊ณ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
}else {
// System.out.print(" x.length() - y.length(): "+ (x.length() - y.length()) +"\n");
return x.length() - y.length(); //์๋ฆฌ์์ ์๊ดํ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
}
});
return unsorted;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.next();
}
arr = bigSorting(arr);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
sc.close();
/* sample input
6
31415926535897932384626433832795
1
3
10
3
5
*/
}
}