結果
問題 | No.267 トランプソート |
ユーザー | t8m8⛄️ |
提出日時 | 2015-08-21 22:39:04 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 130 ms / 1,000 ms |
コード長 | 2,264 bytes |
コンパイル時間 | 4,313 ms |
コンパイル使用メモリ | 89,496 KB |
実行使用メモリ | 41,928 KB |
最終ジャッジ日時 | 2024-07-18 11:45:47 |
合計ジャッジ時間 | 7,395 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
import java.util.*; import java.io.*; import java.awt.geom.*; import java.math.*; public class No0267 { static final Scanner in = new Scanner(System.in); static final PrintWriter out = new PrintWriter(System.out,false); static void solve() { int n = in.nextInt(); ArrayList<Integer> d = new ArrayList<>(); ArrayList<Integer> c = new ArrayList<>(); ArrayList<Integer> h = new ArrayList<>(); ArrayList<Integer> s = new ArrayList<>(); HashMap<Character, Integer> map = new HashMap<>(); map.put('A',1); map.put('T',10); map.put('J',11); map.put('Q',12); map.put('K',13); for (int i=0; i<n; i++) { String str = in.next(); char m = str.charAt(0); char x = str.charAt(1); if (m == 'D') { if ('2' <= x && x <= '9') d.add(x - '0'); else d.add(map.get(x)); }else if (m == 'C') { if ('2' <= x && x <= '9') c.add(x - '0'); else c.add(map.get(x)); }else if (m == 'H') { if ('2' <= x && x <= '9') h.add(x - '0'); else h.add(map.get(x)); }else { if ('2' <= x && x <= '9') s.add(x - '0'); else s.add(map.get(x)); } } HashMap<Integer,Character> map2 = new HashMap<>(); map2.put(1,'A'); map2.put(10,'T'); map2.put(11,'J'); map2.put(12,'Q'); map2.put(13,'K'); Collections.sort(d); Collections.sort(c); Collections.sort(h); Collections.sort(s); StringBuilder sb = new StringBuilder(); for (int i : d) { sb.append("D"); if (2 <= i && i <= 9) sb.append(i); else sb.append(map2.get(i)); sb.append(" "); } for (int i : c) { sb.append("C"); if (2 <= i && i <= 9) sb.append(i); else sb.append(map2.get(i)); sb.append(" "); } for (int i : h) { sb.append("H"); if (2 <= i && i <= 9) sb.append(i); else sb.append(map2.get(i)); sb.append(" "); } for (int i : s) { sb.append("S"); if (2 <= i && i <= 9) sb.append(i); else sb.append(map2.get(i)); sb.append(" "); } sb.deleteCharAt(sb.length()-1); out.println(sb); } public static void main(String[] args) { long start = System.currentTimeMillis(); solve(); out.flush(); long end = System.currentTimeMillis(); //trace(end-start + "ms"); in.close(); out.close(); } static void trace(Object... o) { System.out.println(Arrays.deepToString(o));} }