結果
| 問題 |
No.267 トランプソート
|
| コンテスト | |
| ユーザー |
spacia
|
| 提出日時 | 2016-01-11 11:21:56 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 66 ms / 1,000 ms |
| コード長 | 1,426 bytes |
| コンパイル時間 | 5,061 ms |
| コンパイル使用メモリ | 82,568 KB |
| 実行使用メモリ | 37,776 KB |
| 最終ジャッジ日時 | 2024-09-19 18:45:51 |
| 合計ジャッジ時間 | 6,069 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 |
ソースコード
import java.io.*;
import java.util.*;
class Main {
public static void out (Object o) {
System.out.println(o);
}
public static int getNum (char c) {
return c == 'A' ? 1 : c == 'T' ? 10 : c == 'J' ? 11 : c == 'Q' ? 12 : c == 'K' ? 13 : c - '0';
}
public static int getSuitNum (char c) {
return c == 'D' ? 0 : c == 'C' ? 1 : c == 'H' ? 2 : 3;
}
public static boolean comp (String s , String t) {
char s0 = s.charAt(0);
char t0 = t.charAt(0);
if (s0 != t0) {
return getSuitNum(s0) > getSuitNum(t0);
}
char s1 = s.charAt(1);
char t1 = t.charAt(1);
return getNum(s1) > getNum(t1);
}
public static void sort (String[] cards) {
int len = cards.length;
String[] ret = new String[len];
for (int i = 0; i < len; i++) {
String min = "";
int minNum = -1;
for (int j = 0; j < len; j++) {
if (cards[j].equals("none")) continue;
if (minNum == -1 || comp(min , cards[j])) {
min = cards[j];
minNum = j;
}
}
ret[i] = min;
cards[minNum] = "none";
//out(Arrays.toString(cards));
}
System.out.print(ret[0]);
for (int i = 1; i < len; i++)
System.out.print(" " + ret[i]);
out("");
}
public static void main (String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] cards = br.readLine().split(" ");
sort(cards);
}
}
spacia