ABC236 C-問題
ポイント
急行の停まる駅を「defaultdict(int)」に格納します。
全ての駅(各停が止まる駅)を読み込んで、「defaultdict(int)」を参照し格納している値であれば、"Yes"を回答します。「Python:236C.py」
236C.py
from collections import defaultdict
N,M = map(int,input().split())
# リストで受け取る
S = list(map(str, input().split()))
T = list(map(str, input().split()))
# 連想配列に格納してカウントする
DIC = defaultdict(int)
# 急行の停まる駅を格納する
for c in T:
DIC[c] += 1
# 駅名をループして 急行の停まる駅にヒットしたら Yes
for c in S:
if DIC[c] == 1:
print("Yes")
else:
print("No")
先人の方はどう解いているのか見ていたら、とてもシンプルに解いていました。
急行に停まる駅をsetに格納し、in セット で参照する解法でした。
とても勉強になりました。「Python:236C2.py」
236C2.py
N,M = map(int,input().split())
# リストで受け取る
S = list(map(str, input().split()))
# 急行停車駅は、setに格納する
T = set(map(str, input().split()))
# 駅名が set にヒットしたら Yes
for i in range(N):
if S[i] in T:
print("Yes")
else:
print("No")