[プログラマー]通報結果を得る
1771 ワード
これはプレイヤー間の通報結果を計算するコードです.
22-04-02 code
22-04-02 code from collections import Counter
def solution(id_list, report, k):
#'''
#id_list = str
#report = str str
# k = int
#'''
warninglist = list(set(report))
warningfrom = [wl.split()[0] for wl in warninglist]
warningto = [wl.split()[1] for wl in warninglist]
warninguser = [key for key,value in Counter(warningto).items() if value >= k]
final_list = [wl.split()[0] for wl in warninglist if wl.split()[1] in warninguser]
answer =[]
mailcount = Counter(final_list)
for uid in id_list:
if uid in mailcount.keys():
answer.append(mailcount[uid])
else:
answer.append(0)
return answer
collectionライブラリのcounter関数を使用して、ユーザーごとに受信したクレームの回数を計算します.
Tip.
1.response=[0]*len(id list)で始まる
2.Collection Counterを無効にします.
22-04-04 code def solution(id_list, report, k):
# answer default
answer = [0]*len(id_list)
# delete duplicated warnings
report_rep_del = list(set(report))
# List warned users up
warning_list = [warning.split()[1] for warning in report_rep_del]
warning_list_final = []
for wl in list(set(warning_list)):
if len([wl for w_l in warning_list if w_l == wl]) >= k:
warning_list_final.append(wl)
# List warning users up
warning_mail_list = [rrd.split()[0] for rrd in report_rep_del if rrd.split()[1] in warning_list_final]
i = 0
for uid in id_list:
answer[i] = len([wml for wml in warning_mail_list if wml == uid])
i += 1
return answer
if for if構造を用いて解決した.
Reference
この問題について([プログラマー]通報結果を得る), 我々は、より多くの情報をここで見つけました
https://velog.io/@jup-hui/진행중-programmers-신고-결과-받기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
from collections import Counter
def solution(id_list, report, k):
#'''
#id_list = str
#report = str str
# k = int
#'''
warninglist = list(set(report))
warningfrom = [wl.split()[0] for wl in warninglist]
warningto = [wl.split()[1] for wl in warninglist]
warninguser = [key for key,value in Counter(warningto).items() if value >= k]
final_list = [wl.split()[0] for wl in warninglist if wl.split()[1] in warninguser]
answer =[]
mailcount = Counter(final_list)
for uid in id_list:
if uid in mailcount.keys():
answer.append(mailcount[uid])
else:
answer.append(0)
return answer
def solution(id_list, report, k):
# answer default
answer = [0]*len(id_list)
# delete duplicated warnings
report_rep_del = list(set(report))
# List warned users up
warning_list = [warning.split()[1] for warning in report_rep_del]
warning_list_final = []
for wl in list(set(warning_list)):
if len([wl for w_l in warning_list if w_l == wl]) >= k:
warning_list_final.append(wl)
# List warning users up
warning_mail_list = [rrd.split()[0] for rrd in report_rep_del if rrd.split()[1] in warning_list_final]
i = 0
for uid in id_list:
answer[i] = len([wml for wml in warning_mail_list if wml == uid])
i += 1
return answer
if for if構造を用いて解決した.Reference
この問題について([プログラマー]通報結果を得る), 我々は、より多くの情報をここで見つけました https://velog.io/@jup-hui/진행중-programmers-신고-결과-받기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol