うわさ話
3389 ワード
質問する
白俊1764号助聴器
に答える
最初はリストで解いたが、タイムアウトした.
in
演算を使えば、時間の複雑さはどの資料構造とも同じだと思っていたが、違う.list, tuple
Average : O(n)
ひとつひとつ巡回するのでO(n)のような時間的複雑さがある
set, dictionary
Average : O(1), Worst : O(n)
内部はhashにより格納されるため,アクセス時間はO(1)である.しかしながら、ハッシュ競合によりパフォーマンスが低下する場合、O(n)が必要となる場合がある.
探索後,集合,ディクシャナ演算の時間的複雑度はO(1)であることが分かった.
聞いたことのない人は全部で
listen
人です.次の
m
行の入力に見られない人see
がlisten
にある場合、リスト듣보잡
に追加されます.集合資料型を使用していたので、期間限定で通過しました.
import sys
n, m = map(int, sys.stdin.readline().split())
listen = set(sys.stdin.readline() for _ in range(n))
듣보잡 = []
for _ in range(m):
see = sys.stdin.readline()
if see in listen:
듣보잡.append(see)
듣보잡.sort()
print(len(듣보잡))
print(''.join(듣보잡))
Reference
この問題について(うわさ話), 我々は、より多くの情報をここで見つけました https://velog.io/@kimsen/1764.-듣보잡テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol