白駿1181号:単語のソート
1707 ワード
質問リンク
Comparatorソートで簡単に解くことができます.
Javaを使用した解答
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.Comparator;
public class BaekJoon1181 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
String[] words = new String[n];
for(int i = 0; i < n; i++) {
words[i] = br.readLine(); //배열에 입력받은 각 문자열을 넣어줌
}
Arrays.sort(words, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
if(s1.length() == s2.length()) { //문자열의 길이가 같은 경우
return s1.compareTo(s2); //알파벳 오름차순으로 정렬
} else { //문자열의 길이가 다른 경우
return s1.length() - s2.length(); //길이 오름차순으로 정렬
}
}
});
bw.write(words[0] + "\n");
for(int i = 1; i < n; i++) {
if(words[i].equals(words[i - 1])) { //같은 단어가 있을 경우 출력하지 않음
continue;
}
bw.write(words[i] + "\n");
}
bw.flush();
}
}
ふくガス
Comparatorを継承して直接式を確立する過程はまだ熟知していないので、さらに練習する必要があります.
Reference
この問題について(白駿1181号:単語のソート), 我々は、より多くの情報をここで見つけました https://velog.io/@keithekey/백준-1181번-단어-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol