Tags
- PGM
- ๋๋น ์ฐ์ ํ์
- ๊ทธ๋ํ ํ์
- dfs
- ์ ์๋ก
- queue
- ์ ๋ ฌ
- Brute Force Algorithm
- SpringBoot
- stack
- CodingTest
- ๋ฌธ์์ด
- Java
- ์ํ
- Study
- ์๋ฎฌ๋ ์ด์
- DP
- Python
- ๊น์ด ์ฐ์ ํ์
- ์๋ฃ๊ตฌ์กฐ
- ๊ต์ฌ
- ๊ทธ๋ํ ์ด๋ก
- ๋ฐฑํธ๋ํน
- Dynamic Programming
- LV2
- BOJ
- greedy
- BFS
- ๊ตฌํ
- sort
Archives
๊ธฐ๋ก๋ฐฉ
Lv.1 : ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ ๊ณ ๋ฐ์ ์ ์ง๋ ์ ์ ๊ฐ ์์ผ๋ฉด, ์ ๊ณ ํ ์ฌ๋์๊ฒ ์๋์ด๊ฐ๋ค.
- ์ ์ ๋ค์ด ๋ฐ์ ์๋ ์ ๋ฆฌ์คํธ๋ฅผ ๋ฐํํ๋ค.
๐ธ ์ฝ๋ ๐ธ
def solution(id_list, report, k):
answer = {}
for i in id_list: # ์ ์ ID ๋ช
๋จ
answer[i] = 0
dic = {}
for s in report: # ์ ๊ณ ํํฉ (์ค๋ณต์ ๊ฑฐ)
a, b = s.split()
if b in dic.keys():
dic[b].add(a)
else:
dic[b] = set()
dic[b].add(a)
for value in dic.values(): # ์๋ ์นด์ดํธ
if len(value) >= k:
for i in value:
answer[i] += 1
return list(answer.values())
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ ์ ID๋ช ๋จ์ผ๋ก answer ๋์ ๋๋ฆฌ๋ฅผ ์์ฑํ๋ค.
- ์ ๊ณ ํํฉ์ dic ๋์
๋๋ฆฌ์ ์ธํธ๋ก ์ ์ฅํ๋ฉฐ ์ค๋ณต์ ์ ๊ฑฐํ๋ค.
- ์ ๋ ฅ์ ์ ๊ณ ์:์ ๊ณ ๋ฐ์ ์ ์ ํ์์ด์ง๋ง, ์ ๊ณ ๋ฐ์ ์ ์ : ์ ๊ณ ์ ํํ๋ก ๋ฐ๊พผ๋ค.
- dic ๋์ ๋๋ฆฌ์์ values์ ํฌ๊ธฐ๊ฐ k ์ด์์ด๋ฉด answer์ ๊ฐ์ 1 ์ฆ๊ฐ์ํจ๋ค.
๐ธ ๋ค๋ฅธ ํ์ด ๐ธ
from collections import defaultdict, Counter
def solution(id_list, report, k):
report_dict = defaultdict(set)
report_cntr = Counter()
# {user1๊ฐ ์ ๊ณ ํ user2๋ค} ์ธ dict ์์ฑ
for r in report:
user1, user2 = r.split()
report_dict[user1].add(user2)
# ์ ๊ณ ๋นํํ์ ์ธ dict ์์ฑ
for v in report_dict.values():
report_cntr.update(v)
# {์ ๊ณ ๋ฅผ k๋ฒ ์ด์ ๋นํ ์ฌ๋๋ค} set ์์ฑ
blacklist = {x for x in report_cntr if report_cntr[x] >= k}
# 1๊ณผ 3์ ์ด์ฉํ์ฌ user1์ด ์ ๊ณ ํ ์ฌ๋๋ค์ค์ k๋ฒ ์ด์ ์ ๊ณ ๋นํ ์ฌ๋๋ค ์ซ์ ๋์ถ
return [len(report_dict[user] & blacklist) for user in id_list]
- ์ ๊ณ ํํฉ์ ์ ์ฅํ ๋์ ๋๋ฆฌ๋ฅผ defaultdict(set)๋ฅผ ์ด์ฉํด set ํ์์ผ๋ก ์์ฑํ๋ค.
- setํ์ ๋์ ๋๋ฆฌ์ ๊ฐ์ ๋ฃ์ผ๋ฉฐ ์ค๋ณต์ ์ ๊ฑฐํ๋ค.
- Counter() ๋์ ๋๋ฆฌ์ ๊ฐ์ ๋ฃ๊ณ , k๋ฒ ์ด์ ์ ๊ณ ๋ ๋ธ๋๋ฆฌ์คํธ ์ ์ ์ ID ๋ฆฌ์คํธ๋ฅผ ๋ง๋ ๋ค.
- ์ฒ์ setํ์ ๋์ ๋๋ฆฌ์ ๋ง๋ค์ด์ง ๋ธ๋๋ฆฌ์คํธ ์ ์ ๋ฅผ ๋น๊ตํด ๊ฒน์น๋ ์์์ ๊ฐ์๋ฅผ ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด ๋ฐํํ๋ค.
๐ธ end ๐ธ
- ๋์ ๋๋ฆฌ์ ์ธํธ ์ฌ์ฉ์ ์ฐ์ตํด๋ณผ ์ ์์๋ ๋ฌธ์ ์๋ค.
- ๋ค๋ฅธ ํ์ด์์ defalutdict์ Counter ์ฌ์ฉ์ ๋ค์๊ธ ๋ฐฐ์ธ ์ ์์๋ค.
- &๋ก ๋ ๋ฆฌ์คํธ ์์๋ฅผ ๋น๊ตํด ๊ฐ์๋ฅผ ํ์ ํ๋๊ฒ ์ธ์์ ์ด์๋ค.
- ๋ฐ๋ณต๋ฌธ ์๊ฐ ์ ์ด์ ๊ทธ๋ฐ์ง ์ข ๋ ๋น ๋ฅธ ์ฒ๋ฆฌ๊ฐ ๋ ํ ์คํธ๋ค์ด ์์๋ค.
728x90
'CodingTest > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lv.2 : ๋ฉ๋ด ๋ฆฌ๋ด์ผ (0) | 2022.09.20 |
---|---|
Lv.2 : ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ (0) | 2022.09.19 |
Lv.2 : ์คํฌํธ๋ฆฌ (0) | 2022.09.18 |
BOJ_1012 : ์ ๊ธฐ๋ ๋ฐฐ์ถ (0) | 2022.09.15 |
Lv.2 : ํํ (0) | 2022.09.12 |