λ¬Έμ μ€λͺ
μ μ μ¬μ 무μ§λ κ²μν λΆλ μ΄μ©μλ₯Ό μ κ³ νκ³ μ²λ¦¬ κ²°κ³Όλ₯Ό λ©μΌλ‘ λ°μ‘νλ μμ€ν μ κ°λ°νλ € ν©λλ€. 무μ§κ° κ°λ°νλ €λ μμ€ν μ λ€μκ³Ό κ°μ΅λλ€.
- κ° μ μ λ ν λ²μ ν λͺ
μ μ μ λ₯Ό μ κ³ ν μ μμ΅λλ€.
- μ κ³ νμμ μ νμ μμ΅λλ€. μλ‘ λ€λ₯Έ μ μ λ₯Ό κ³μν΄μ μ κ³ ν μ μμ΅λλ€.
- ν μ μ λ₯Ό μ¬λ¬ λ² μ κ³ ν μλ μμ§λ§, λμΌν μ μ μ λν μ κ³ νμλ 1νλ‘ μ²λ¦¬λ©λλ€.
- kλ² μ΄μ μ κ³ λ μ μ λ κ²μν μ΄μ©μ΄ μ μ§λλ©°, ν΄λΉ μ μ λ₯Ό μ κ³ ν λͺ¨λ μ μ μκ² μ μ§ μ¬μ€μ λ©μΌλ‘ λ°μ‘ν©λλ€.
- μ μ κ° μ κ³ ν λͺ¨λ λ΄μ©μ μ·¨ν©νμ¬ λ§μ§λ§μ νκΊΌλ²μ κ²μν μ΄μ© μ μ§λ₯Ό μν€λ©΄μ μ μ§ λ©μΌμ λ°μ‘ν©λλ€.
λ€μμ μ 체 μ μ λͺ©λ‘μ΄ ["muzi", "frodo", "apeach", "neo"]μ΄κ³ , k = 2(μ¦, 2λ² μ΄μ μ κ³ λΉνλ©΄ μ΄μ© μ μ§)μΈ κ²½μ°μ μμμ λλ€.
μ μ ID | μ μ κ° μ κ³ ν ID | μ€λͺ |
"muzi" | "frodo" | "muzi"κ° "frodo"λ₯Ό μ κ³ νμ΅λλ€. |
"apeach" | "frodo" | "apeach"κ° "frodo"λ₯Ό μ κ³ νμ΅λλ€. |
"frodo" | "neo" | "frodo"κ° "neo"λ₯Ό μ κ³ νμ΅λλ€. |
"muzi" | "neo" | "muzi"κ° "neo"λ₯Ό μ κ³ νμ΅λλ€. |
"apeach" | "muzi" | "apeach"κ° "muzi"λ₯Ό μ κ³ νμ΅λλ€. |
κ° μ μ λ³λ‘ μ κ³ λΉν νμλ λ€μκ³Ό κ°μ΅λλ€.
μ μ ID | μ κ³ λΉν νμ |
"muzi" | 1 |
"frodo" | 2 |
"apeach" | 0 |
"neo" | 2 |
μ μμμμλ 2λ² μ΄μ μ κ³ λΉν "frodo"μ "neo"μ κ²μν μ΄μ©μ΄ μ μ§λ©λλ€. μ΄λ, κ° μ μ λ³λ‘ μ κ³ ν μμ΄λμ μ μ§λ μμ΄λλ₯Ό μ 리νλ©΄ λ€μκ³Ό κ°μ΅λλ€.
μ μ ID | μ μ κ° μ κ³ ν ID | μ μ§λ ID |
"muzi" | ["frodo", "neo"] | ["frodo", "neo"] |
"frodo" | ["neo"] | ["neo"] |
"apeach" | ["muzi", "frodo"] | ["frodo"] |
"neo" | μμ | μμ |
λ°λΌμ "muzi"λ μ²λ¦¬ κ²°κ³Ό λ©μΌμ 2ν, "frodo"μ "apeach"λ κ°κ° μ²λ¦¬ κ²°κ³Ό λ©μΌμ 1ν λ°κ² λ©λλ€.
μ΄μ©μμ IDκ° λ΄κΈ΄ λ¬Έμμ΄ λ°°μ΄ id_list, κ° μ΄μ©μκ° μ κ³ ν μ΄μ©μμ ID μ λ³΄κ° λ΄κΈ΄ λ¬Έμμ΄ λ°°μ΄ report, μ μ§ κΈ°μ€μ΄ λλ μ κ³ νμ kκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, κ° μ μ λ³λ‘ μ²λ¦¬ κ²°κ³Ό λ©μΌμ λ°μ νμλ₯Ό λ°°μ΄μ λ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
- 2 ≤ id_listμ κΈΈμ΄ ≤ 1,000
- 1 ≤ id_listμ μμ κΈΈμ΄ ≤ 10
- id_listμ μμλ μ΄μ©μμ idλ₯Ό λνλ΄λ λ¬Έμμ΄μ΄λ©° μνλ²³ μλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- id_listμλ κ°μ μμ΄λκ° μ€λ³΅ν΄μ λ€μ΄μμ§ μμ΅λλ€.
- 1 ≤ reportμ κΈΈμ΄ ≤ 200,000
- 3 ≤ reportμ μμ κΈΈμ΄ ≤ 21
- reportμ μμλ "μ΄μ©μid μ κ³ νid"ννμ λ¬Έμμ΄μ λλ€.
- μλ₯Ό λ€μ΄ "muzi frodo"μ κ²½μ° "muzi"κ° "frodo"λ₯Ό μ κ³ νλ€λ μλ―Έμ λλ€.
- idλ μνλ²³ μλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- μ΄μ©μidμ μ κ³ νidλ 곡백(μ€νμ΄μ€)νλλ‘ κ΅¬λΆλμ΄ μμ΅λλ€.
- μκΈ° μμ μ μ κ³ νλ κ²½μ°λ μμ΅λλ€.
- 1 ≤ k ≤ 200, kλ μμ°μμ λλ€.
- return νλ λ°°μ΄μ id_listμ λ΄κΈ΄ id μμλλ‘ κ° μ μ κ° λ°μ κ²°κ³Ό λ©μΌ μλ₯Ό λ΄μΌλ©΄ λ©λλ€.
https://school.programmers.co.kr/learn/courses/30/lessons/92334
π‘ νμ΄ λ° μ½λ
from collections import defaultdict
def solution(id_list, report, k):
answer = []
report_who = defaultdict(set)
for rep in report:
id, report_id = rep.split()
report_who[report_id].add(id)
restricted_id = []
for id in id_list:
if len(report_who[id]) >= k:
restricted_id.append(id)
for id in id_list:
count = 0
for rid in restricted_id:
if id in report_who[rid]:
count += 1
answer.append(count)
return answer
μ΄ λ¬Έμ μ ν΅μ¬μ λμΌν μ μ μ λν μ κ³ νμλ 1νλ‘ μ²λ¦¬λλ€λ κ²μ΄λ€. λ¨μν μ κ³ νμκ° kν μ΄μμΈ κ²½μ°κ° μλ μ κ³ ν μ¬λμ΄ kλͺ μ΄μμΌ κ²½μ°λ₯Ό νλ¨ν΄ κ²μν μ΄μ©μ μ μ§μμΌμΌ νλ€. λ°λΌμ κ° μ μ λ³λ‘ μ κ³ λΉν IDλ₯Ό μ μ₯ν λ(report_who) λμΌν μ μ μ λν΄μλ μ κ³ κ° νλ²λ§ μ μ₯λ μ μλλ‘ setμ μ¬μ©νλ€.
'Algorithm > π Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Programmers] νλ‘κ·Έλλ¨Έμ€ LV.1 μ±κ²© μ ν κ²μ¬νκΈ° - νμ΄μ¬(Python) (1) | 2022.09.02 |
---|