結果
| 問題 |
No.205 マージして辞書順最小
|
| コンテスト | |
| ユーザー |
Shel_Rain
|
| 提出日時 | 2016-10-26 19:07:15 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,823 bytes |
| コンパイル時間 | 3,695 ms |
| コンパイル使用メモリ | 83,992 KB |
| 実行使用メモリ | 59,004 KB |
| 最終ジャッジ日時 | 2024-11-24 03:53:43 |
| 合計ジャッジ時間 | 7,833 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 11 WA * 4 |
ソースコード
import java.util.*;
import java.util.Map.Entry;
public class DescOrder {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
List<String> input = new ArrayList<>();
int totalLength = 0;
for (int i = 0; i < Integer.parseInt(line); i ++) {
String str = sc.nextLine();
input.add(str);
totalLength += str.length();
}
Collections.sort(input);
// Collections.reverse(input);
String result = "";
for (int i = 0; i < totalLength; i ++) {
String lastChar = getLastestChar(input);
if (lastChar != null) {
result += lastChar;
} else {
break;
}
}
// String reverseResult = new StringBuilder(result).reverse().toString();
System.out.println(result);
}
public static String getLastestChar(List<String> input) {
String result = null;
int deleteIndex = -1;
char str = 'z';
int onlyOneChar = 0;
for (int i = 0; i < input.size(); i ++) {
if (!input.get(i).isEmpty()) {
String tmp = input.get(i);
if (tmp.substring(0,1).toCharArray()[0] == '|') {
continue;
}
if (tmp.substring(0,1).toCharArray()[0] < str || deleteIndex == -1) {
str = tmp.substring(0,1).toCharArray()[0];
deleteIndex = i;
}
result = String.valueOf(str);
} else {
continue;
}
}
if (result != null) {
String newStr = input.get(deleteIndex).substring(1,input.get(deleteIndex).length()) + "|";
input.set(deleteIndex, newStr);
Collections.sort(input);
}
return result;
}
}
Shel_Rain