結果

問題 No.267 トランプソート
ユーザー ssmkzkssmkzk
提出日時 2018-09-27 13:33:31
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
AC  
実行時間 33 ms / 1,000 ms
コード長 2,006 bytes
コンパイル時間 101 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 11,136 KB
最終ジャッジ日時 2024-10-12 04:27:31
合計ジャッジ時間 1,602 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 31 ms
11,008 KB
testcase_01 AC 31 ms
11,008 KB
testcase_02 AC 30 ms
11,008 KB
testcase_03 AC 31 ms
11,136 KB
testcase_04 AC 32 ms
11,008 KB
testcase_05 AC 33 ms
11,008 KB
testcase_06 AC 30 ms
10,880 KB
testcase_07 AC 31 ms
10,880 KB
testcase_08 AC 31 ms
11,008 KB
testcase_09 AC 31 ms
11,008 KB
testcase_10 AC 31 ms
10,880 KB
testcase_11 AC 31 ms
11,008 KB
testcase_12 AC 30 ms
11,008 KB
testcase_13 AC 31 ms
11,008 KB
testcase_14 AC 31 ms
11,008 KB
testcase_15 AC 31 ms
11,008 KB
testcase_16 AC 30 ms
11,008 KB
testcase_17 AC 31 ms
11,008 KB
testcase_18 AC 30 ms
11,008 KB
testcase_19 AC 30 ms
11,008 KB
testcase_20 AC 31 ms
11,008 KB
testcase_21 AC 31 ms
10,880 KB
testcase_22 AC 30 ms
11,136 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())
l = list(map(str, input().split()))

D_l = []
C_l = []
H_l = []
S_l = []
df = 0
cf = 0
hf = 0
sf = 0

for l_i in l:
    if l_i[0] == "D":
        D_l.append(l_i)
        if l_i[1] == "A":
            df = 1
    elif l_i[0] == "C":
        C_l.append(l_i)
        if l_i[1] == "A":
            cf = 1
    elif l_i[0] == "H":
        H_l.append(l_i)
        if l_i[1] == "A":
            hf = 1
    else:
        S_l.append(l_i)
        if l_i[1] == "A":
            sf = 1


def card_sort(list):
    list.sort()
    if list[-1][1] == "Q":
        if list[-2][1] == "K":
            list[-1], list[-2] = list[-2], list[-1]
            return list
        else:
            return list
    elif list[-1][1] == "T":
        if list[-2][1] == "Q":
            list[-1], list[-2] = list[-2], list[-1]
            if list[-3][1] == "K":
                list[-3], list[-2] = list[-2], list[-3]
                list[-1], list[-2] = list[-2], list[-1]
                if list[-4][1] == "J":
                    list[-3], list[-4] = list[-4], list[-3]
            elif list[-3][1] == "J":
                list[-3], list[-2] = list[-2], list[-3]
        elif list[-2][1] == "K":
            list[-1], list[-2] = list[-2], list[-1]
            if list[-3][1] == "J":
                list[-3], list[-2] = list[-2], list[-3]
        elif list[-2][1] == "J":
            list[-1], list[-2] = list[-2], list[-1]
        return list
    else:
        return list

if len(S_l) > 2:
    S_l = card_sort(S_l)
if len(D_l) > 2:
    D_l = card_sort(D_l)
if len(C_l) > 2:
    C_l = card_sort(C_l)
if len(H_l) > 2:
    H_l = card_sort(H_l)

if df == 1:
    D_l.remove("DA")
    D_l.insert(0, "DA")
if cf == 1:
    C_l.remove("CA")
    C_l.insert(0, "CA")
if hf == 1:
    H_l.remove("HA")
    H_l.insert(0, "HA")
if sf == 1:
    S_l.remove("SA")
    S_l.insert(0, "SA")

# print(D_l)
# print(C_l)
# print(H_l)
# print(S_l)

ans_l = D_l + C_l + H_l + S_l

ans = ""

for li in ans_l:
    ans += li + " "

print(ans)   
0