ITP1_6_B: Finding Missing Cards
なくなったカードの発見 | プログラミング入門 | Aizu Online Judge
不足しているカードを指定された順序で表示する問題
トランプのリストを用意しておき、指定されたカードをフラグで管理するか、取り除くかします。
解答1
# トランプの生成 cards = [ "{} {}".format(s, r) for s in ('S', 'H', 'C', 'D') for r in range(1, 13 + 1) ] count = int(input()) # トランプの削除 for n in range(count): card = input() cards.remove(card) # 不足しているトランプの表示 for n in cards: print(n)
解答2
from collections import OrderedDict # トランプの生成 cards = OrderedDict() # 順序付き辞書 for s in ['S', 'H', 'C', 'D']: for r in range(1, 13 + 1): key = "{} {}".format(s, r) cards[key] = False count = int(input()) # 所持しているトランプの処理 for n in range(count): input_key = input() cards[input_key] = not(cards[input_key]) # 真理値を反転 (Trueへ) # 不足しているトランプの表示 for k, v in cards.items(): if not v: print(k)