1
+ package backjoon ;
2
+ // https://www.acmicpc.net/problem/1181
3
+ // 단어 정렬
4
+ import java .io .BufferedReader ;
5
+ import java .io .IOException ;
6
+ import java .io .InputStreamReader ;
7
+ import java .util .Arrays ;
8
+ import java .util .Comparator ;
9
+
10
+ public class _1181 {
11
+
12
+ public static void main (String [] args ) throws IOException {
13
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
14
+ // memory 28808 runtime 288
15
+ int N = Integer .parseInt (br .readLine ());
16
+ // 배열에 넣기
17
+ String [] arr = new String [N ];
18
+ for (int i = 0 ; i < N ; i ++) {
19
+ arr [i ] = br .readLine ();
20
+ }
21
+
22
+ Arrays .sort (arr , new Comparator <String >() {
23
+ @ Override
24
+ public int compare (String o1 , String o2 ) {
25
+ // 단어 길이가 같으면 사전순
26
+ if (o1 .length () == o2 .length ()){
27
+ return o1 .compareTo (o2 );
28
+ } else {
29
+ return o1 .length () - o2 .length (); //길이차가 양수면 자리가 바뀌고, 음수면 그대로
30
+ }
31
+ }
32
+ });
33
+
34
+ StringBuilder sb = new StringBuilder ();
35
+
36
+ //중복되는 단어는 빼고 출력하기위해 비교를 위해 첫번째 단어를 넣어둠
37
+ sb .append (arr [0 ]).append ("\n " );
38
+
39
+ for (int i =1 ; i <N ; i ++){
40
+ if (!arr [i ].equals (arr [i -1 ])){
41
+ sb .append (arr [i ]).append ("\n " );
42
+ }
43
+ }
44
+ System .out .println (sb );
45
+ }
46
+ }
47
+ /*
48
+ input
49
+ 13
50
+ but
51
+ i
52
+ wont
53
+ hesitate
54
+ no
55
+ more
56
+ no
57
+ more
58
+ it
59
+ cannot
60
+ wait
61
+ im
62
+ yours
63
+
64
+ output
65
+ i
66
+ im
67
+ it
68
+ no
69
+ but
70
+ more
71
+ wait
72
+ wont
73
+ yours
74
+ cannot
75
+ hesitate
76
+ */
0 commit comments