ํ์ด
๋ณ๋ค๋ฅธ ํ์ด ๋ฐฉ๋ฒ ์์ด ๋ฌธ์ ๋ฅผ ๊ทธ๋๋ก ๊ตฌํํ๋ฉด ๋๋ค.
# ํ๋ฒ์ ํ ์ ์ ์ ๊ณ ๊ฐ๋ฅ, ํ ์ ์ ๋ฅผ ์ฌ๋ฌ๋ฒ ์ ๊ณ ์ 1๋ฒ์ผ๋ก ๊ฐ์ฃผ
# K๋ฒ ์ด์ ์ ๊ณ ๋๋ฉด ์ ์ง
# ์ ๊ณ ํ ์ฌ๋์๊ฒ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ผ๋ก ๋ฐ๋๋ค.
3๊ฐ์ ๋ฉ์๋๋ฅผ ๊ตฌํํด์ ํ์๋ค. ์ฝ๋ฉ ํ
์คํธ๋ฅผ ๋ณผ๋ ํจ์๋ฅผ ๋๋๋๊ฒ ์ข์์ง ์๋์ง ๋ชจ๋ฅด๊ฒ ๋ค....
# 0. (์ฌ์ ์ฒ๋ฆฌ) ๊ฐ์ ์ ๊ณ ๋ฅผ ํ ๊ฒฝ์ฐ๋ ์์ผ๋ฏ๋ก ์ค๋ณต์ ๊ฑฐ๋ฅผ ๋จผ์ ํด์ค๋ค.
# 1๋ฒ ๋ฉ์๋. ์ ๊ณ ์ : [ํผ ์ ๊ณ ์๋ค] ํํ๋ก ๋ง๋ ๋ค.
# 2๋ฒ ๋ฉ์๋. ํผ ์ ๊ณ ์๋ค๋ง ์นด์ดํ
ํด์ ์ ์ง๋นํ ํผ ์ ๊ณ ์์ฒดํฌ( K ๋ฒ ์ด์ )
# 3๋ฒ ๋ฉ์๋. ์ ์ง๋ฆฌ์คํธ์ ํผ ์ ๊ณ ์๋ค ๋ฆฌ์คํธ ๋์กฐํด์ ๋ฐํํ result๋ฐฐ์ด ์์ฑ
# ๋ฉ์๋ 3
def send_email(id_list, block_list, report_dict):
result = [0 for _ in range(len(id_list))]
idx = 0
for user in id_list:
for block_user in block_list:
if None != report_dict.get(user) and report_dict[user].count(block_user):
result[idx] += 1
idx += 1
return result
# ๋ฉ์๋ 2
def block_user_check(id_list, reported_list ,k):
block_list = set()
for user in id_list:
if reported_list.count(user) >= k :
block_list.add(user)
return list(block_list)
#๋ฉ์๋ 1
def transform_dict(report):
report_dict = dict()
reported_list = []
for rep in report:
report_user , reported_user = rep.split()
reported_list.append(reported_user)
if report_dict.get(report_user) == None :
report_dict[report_user] = [reported_user]
else :
report_dict[report_user].append(reported_user)
return report_dict, reported_list
def solution(id_list, report, k):
report = list(set(report)) # 0. ์ค๋ณต์ ๊ฑฐ
report_dict, reported_list = transform_dict(report)
block_list = block_user_check(id_list, reported_list, k)
return send_email(id_list,block_list, report_dict)