๐๏ธ Algorithm/โฌ ํ๋ก๊ทธ๋๋จธ์ค
[Programmers] [2022 kakao blind recruitment] [Python] Level1_์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ
Dbswnstjd
2022. 2. 25. 22:19
https://programmers.co.kr/learn/courses/30/lessons/92334
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ
๋ฌธ์ ์ค๋ช ์ ์ ์ฌ์ ๋ฌด์ง๋ ๊ฒ์ํ ๋ถ๋ ์ด์ฉ์๋ฅผ ์ ๊ณ ํ๊ณ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ผ๋ก ๋ฐ์กํ๋ ์์คํ ์ ๊ฐ๋ฐํ๋ ค ํฉ๋๋ค. ๋ฌด์ง๊ฐ ๊ฐ๋ฐํ๋ ค๋ ์์คํ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ฐ ์ ์ ๋ ํ ๋ฒ์ ํ ๋ช ์
programmers.co.kr
ํ์ด
# ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ
from collections import defaultdict
def solution(id_list, report, k):
answer = [0] * len(id_list)
report = set(report)
user_report = defaultdict(set) # ์ ๊ณ ๋ฅผ ํ ์ ์ ๋ชฉ๋ก ( set )
user_num_of_reported = defaultdict(int) # ์ ์ ๊ฐ ์ ๊ณ ๋นํ ํ์ ( int )
suspended = []
for r in report:
do_report, be_reported = r.split()
user_num_of_reported[be_reported] += 1
user_report[do_report].add(be_reported)
if user_num_of_reported[be_reported] == k:
suspended.append(be_reported)
for s in suspended:
for i in range(len(id_list)):
if s in user_report[id_list[i]]:
answer[i] += 1
return answer
ans = solution(["muzi", "frodo", "apeach", "neo"], ["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"], 2)
print(ans)