このシリーズではE869120さんによって作成された競プロ典型90問をPythonで解いています。
問題
ポイント
今までに登録された名前を記憶しておき、登録申請の度に照会します。
Python は set を用いると便利です。重複を削除してくれるし、in list より in set の方が計算コストが低いので。
コード
def main():
import sys
sys.setrecursionlimit(10 ** 9)
input = sys.stdin.readline
N = int(input())
names = set()
ans = []
for i in range(N):
s = input()[:-1]
if s in names: # 既に名前が登録済みの場合は登録しない
continue
else: # 新規の名前の場合
names.add(s) # 申請された名前を登録
ans.append(i+1) # 申請日を答えの配列に格納
print(*ans, sep='\n')
if __name__ == '__main__':
main()