結果

問題 No.267 トランプソート
ユーザー tsuchinagatsuchinaga
提出日時 2019-03-26 08:12:03
言語 Go
(1.22.1)
結果
AC  
実行時間 2 ms / 1,000 ms
コード長 938 bytes
コンパイル時間 12,328 ms
コンパイル使用メモリ 246,024 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-04-19 08:37:34
合計ジャッジ時間 11,219 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,816 KB
testcase_01 AC 1 ms
6,816 KB
testcase_02 AC 1 ms
6,812 KB
testcase_03 AC 1 ms
6,944 KB
testcase_04 AC 1 ms
6,944 KB
testcase_05 AC 1 ms
6,940 KB
testcase_06 AC 1 ms
6,944 KB
testcase_07 AC 1 ms
6,948 KB
testcase_08 AC 1 ms
6,944 KB
testcase_09 AC 2 ms
6,944 KB
testcase_10 AC 2 ms
6,940 KB
testcase_11 AC 2 ms
6,940 KB
testcase_12 AC 1 ms
6,940 KB
testcase_13 AC 2 ms
6,940 KB
testcase_14 AC 2 ms
6,944 KB
testcase_15 AC 2 ms
6,940 KB
testcase_16 AC 2 ms
6,940 KB
testcase_17 AC 2 ms
6,944 KB
testcase_18 AC 2 ms
6,944 KB
testcase_19 AC 2 ms
6,940 KB
testcase_20 AC 2 ms
6,940 KB
testcase_21 AC 2 ms
6,940 KB
testcase_22 AC 2 ms
6,944 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import (
	"fmt"
	"sort"
)

func main() {
	var n int
	_, _ = fmt.Scan(&n)

	type card struct {
		s    string // 元の字
		m, n int    // マーク(1: D, 2: C, 3: H, 4: S), 数字(1: A, 2~9: 2~9, 10: T, 11: J, 12: Q, 13: K)
	}
	cards := make([]card, n)

	s := ""
	for i := range cards {
		_, _ = fmt.Scan(&s)
		cards[i].s = s

		switch s[0] {
		case 'D':
			cards[i].m = 1
		case 'C':
			cards[i].m = 2
		case 'H':
			cards[i].m = 3
		case 'S':
			cards[i].m = 4
		}

		switch s[1] {
		case 'A':
			cards[i].n = 1
		case 'T':
			cards[i].n = 10
		case 'J':
			cards[i].n = 11
		case 'Q':
			cards[i].n = 12
		case 'K':
			cards[i].n = 13
		default:
			cards[i].n = int(s[1] - '0')
		}
	}

	sort.Slice(cards, func(i, j int) bool {
		return cards[i].m < cards[j].m || (cards[i].m == cards[j].m && cards[i].n < cards[j].n)
	})
	for i, c := range cards {
		if i != 0 {
			fmt.Print(" ")
		}
		fmt.Print(c.s)
	}
	fmt.Println()
}
0