ABC292 B-問題
ポイント
背番号をキーにイエローカードで +1 、レッドカードで +2 して
イベントナンバー3の場合に対象背番号の累積値を判定する
辞書に格納してカウントする方法
292B.py
from collections import defaultdict
N,Q = map(int,input().split())
dic = defaultdict(int)
for _ in range(Q):
num, player = map(int,input().split())
if num == 1:
dic[player] += 1
elif num == 2:
dic[player] += 2
elif num == 3:
if dic[player] >= 2:
print("Yes")
else:
print("No")
配列に格納してカウントする方法
292B-2.py
N,Q = map(int,input().split())
# インデックスで管理するので、先頭にゼロ番を追加する
arr = [0] * (N + 1)
for _ in range(Q):
num, player = map(int,input().split())
if num == 1:
arr[player] += 1
elif num == 2:
arr[player] += 2
elif num == 3:
if arr[player] >= 2:
print("Yes")
else:
print("No")
ABC213 B-問題
ポイント
・得点とインデックスの順で二次元配列に格納し、降順ソートする
・ブービー賞なので、先頭から2番目の選手の番号を回答する
辞書に格納してカウントする方法
213B.py
N = int(input())
A = list(map(int, input().split()))
ans = []
for i in range(N):
# 二次元配列で、得点 と 順番 を格納する
ans.append([A[i],i + 1])
# 得点を大きい方からソート
ans.sort(reverse=True)
# 前から 2 番目(インデックスでは、1)の人の並び順を出力する
print(ans[1][1])