結果
問題 | No.267 トランプソート |
ユーザー |
![]() |
提出日時 | 2015-08-21 22:29:16 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 128 ms / 1,000 ms |
コード長 | 1,465 bytes |
コンパイル時間 | 2,086 ms |
コンパイル使用メモリ | 79,128 KB |
実行使用メモリ | 54,412 KB |
最終ジャッジ日時 | 2024-07-18 11:36:17 |
合計ジャッジ時間 | 5,257 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
package no267;import java.util.Arrays;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();Card[] c = new Card[n];for(int i=0;i<n;i++) {c[i] = Card.valueOf(sc.next());}Arrays.sort(c);StringBuilder sb = new StringBuilder();for(int i=0;i<n;i++) {if (i > 0) {sb.append(' ');}sb.append(c[i]);}System.out.println(sb);}public static class Card implements Comparable<Card>{String str;int number;char suit;public Card(String s,int num,char suit) {this.str = s;this.number = num;this.suit = suit;}public static Card valueOf(String s) {return new Card(s,g(s.substring(1, s.length())),s.charAt(0));}@Overridepublic int compareTo(Card o) {if (suit != o.suit) {return Integer.compare(f(suit), f(o.suit));}return Integer.compare(number, o.number);}private static int f(char s) {if (s == 'D') {return 0;}if (s == 'C') {return 1;}if (s == 'H') {return 2;}return 3;}private static int g(String s) {try {return Integer.valueOf(s);} catch (Exception e) {switch (s) {case "A":return 1;case "T":return 10;case "J":return 11;case "Q":return 12;case "K":return 13;}}return -1;}public String toString() {return str;}}}