[伯俊]BOJ 1181 JAVA
8095 ワード
BOJ 1181単語のソート
N個の小文字の単語がある場合は、次の条件に従ってプログラムを作成します.
1行目は単語の個数Nを与える.(1≦N≦20000)2行目から、各行にN個の小文字からなる単語があります.指定された文字列の長さは50を超えません.
条件付きソートで単語を出力します.ただし,同じ単語が複数回入力されると,1回のみ出力される.
重複除外のために
質問する
N個の小文字の単語がある場合は、次の条件に従ってプログラムを作成します.
길이가 짧은 것부터
길이가 같으면 사전 순으로
入力
1行目は単語の個数Nを与える.(1≦N≦20000)2行目から、各行にN個の小文字からなる単語があります.指定された文字列の長さは50を超えません.
しゅつりょく
条件付きソートで単語を出力します.ただし,同じ単語が複数回入力されると,1回のみ出力される.
サンプルI/O
ソースコード
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
List<String> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
list.add(br.readLine());
}
Set<String> stringSet = new HashSet<>(list);
List<String> list2 = new ArrayList<>(stringSet);
Collections.sort(list2, (o1, o2) -> {
if (o1.length() == o2.length()) return o1.compareTo(o2);
return o1.length() - o2.length();
});
for (String str : list2) {
System.out.println(str);
}
}
}
Comment
HashSet
を用いて複製し,Collection.sort
に内蔵されたComparable
のram多項式によりソートした.Reference
この問題について([伯俊]BOJ 1181 JAVA), 我々は、より多くの情報をここで見つけました https://velog.io/@jinmin2216/백준-BOJ1181-JAVAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol