λ¬Έμ
λ¬Έμ μ€λͺ
μ μ μ¬μ 무μ§λ κ²μν λΆλ μ΄μ©μλ₯Ό μ κ³ νκ³ μ²λ¦¬ κ²°κ³Όλ₯Ό λ©μΌλ‘ λ°μ‘νλ μμ€ν μ κ°λ°νλ € ν©λλ€. 무μ§κ° κ°λ°νλ €λ μμ€ν μ λ€μκ³Ό κ°μ΅λλ€.
- κ° μ μ λ ν λ²μ ν λͺ
μ μ μ λ₯Ό μ κ³ ν μ μμ΅λλ€.
- μ κ³ νμμ μ νμ μμ΅λλ€. μλ‘ λ€λ₯Έ μ μ λ₯Ό κ³μν΄μ μ κ³ ν μ μμ΅λλ€.
- ν μ μ λ₯Ό μ¬λ¬ λ² μ κ³ ν μλ μμ§λ§, λμΌν μ μ μ λν μ κ³ νμλ 1νλ‘ μ²λ¦¬λ©λλ€.
- kλ² μ΄μ μ κ³ λ μ μ λ κ²μν μ΄μ©μ΄ μ μ§λλ©°, ν΄λΉ μ μ λ₯Ό μ κ³ ν λͺ¨λ μ μ μκ² μ μ§ μ¬μ€μ λ©μΌλ‘ λ°μ‘ν©λλ€.
- μ μ κ° μ κ³ ν λͺ¨λ λ΄μ©μ μ·¨ν©νμ¬ λ§μ§λ§μ νκΊΌλ²μ κ²μν μ΄μ© μ μ§λ₯Ό μν€λ©΄μ μ μ§ λ©μΌμ λ°μ‘ν©λλ€.
λ€μμ μ 체 μ μ λͺ©λ‘μ΄ ["muzi", "frodo", "apeach", "neo"]μ΄κ³ , k = 2(μ¦, 2λ² μ΄μ μ κ³ λΉνλ©΄ μ΄μ© μ μ§)μΈ κ²½μ°μ μμμ λλ€.
"muzi" | "frodo" | "muzi"κ° "frodo"λ₯Ό μ κ³ νμ΅λλ€. |
"apeach" | "frodo" | "apeach"κ° "frodo"λ₯Ό μ κ³ νμ΅λλ€. |
"frodo" | "neo" | "frodo"κ° "neo"λ₯Ό μ κ³ νμ΅λλ€. |
"muzi" | "neo" | "muzi"κ° "neo"λ₯Ό μ κ³ νμ΅λλ€. |
"apeach" | "muzi" | "apeach"κ° "muzi"λ₯Ό μ κ³ νμ΅λλ€. |
κ° μ μ λ³λ‘ μ κ³ λΉν νμλ λ€μκ³Ό κ°μ΅λλ€.
"muzi" | 1 |
"frodo" | 2 |
"apeach" | 0 |
"neo" | 2 |
μ μμμμλ 2λ² μ΄μ μ κ³ λΉν "frodo"μ "neo"μ κ²μν μ΄μ©μ΄ μ μ§λ©λλ€. μ΄λ, κ° μ μ λ³λ‘ μ κ³ ν μμ΄λμ μ μ§λ μμ΄λλ₯Ό μ 리νλ©΄ λ€μκ³Ό κ°μ΅λλ€.
"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 ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
λμ μ½λ
def solution(id_list, report, k):
arr = []
hashmap = {}
answer = []
imp = []
cnt = 0
# report λ°°μ΄ μ΄μ°¨μ λ°°μ΄λ‘ λ§λ€κΈ° (κ°μ μ¬λμ΄ κ°μ μ¬λ μ κ³ ν μ€λ³΅ κ²½μ° μ μΈ)
for rep in report:
repo = rep.split(" ")
arr.append(repo)
if arr.count(repo) > 1:
arr.pop()
print(arr)
# hashmapμΌλ‘ κ° μΈλ¬ΌλΉ μ κ³ κ° λͺλ²λλμ§ νμ
νκΈ°
for i in range(len(arr)):
if arr[i][1] in hashmap:
hashmap[arr[i][1]] += 1
else:
hashmap[arr[i][1]] = arr[i][1].count(arr[i][1])
# μ κ³ λ°μ νμκ° k μ΄μμΈ κ²½μ°λ§ λ°°μ΄μ μΆκ°
for key in hashmap.keys():
if hashmap[key] >= k:
imp.append(key)
print(imp)
# μμ λ μ κ³ λ¦¬μ€νΈλ₯Ό λ°νμΌλ‘ λ©μΌ λ°μ‘ νμ ꡬνκΈ°
for id in id_list:
for t in range(len(arr)):
if id == arr[t][0]:
if arr[t][1] in imp:
cnt += 1
else:
continue
answer.append(cnt)
cnt = 0
return answer
λΆμ > μ΄ μ½λμ κ²½μ° reportμ κΈΈμ΄κ° μ΅λμΌ λ μ΅λ 400μ΅λ² λκΈ° λλ¬Έμ μκ°μ΄κ³Όκ° λ¬λ€. κ·Έλ¬κΈ° λλ¬Έμ λΈλ£¨νΈν¬μ€λ‘ νλ©΄ μλλ€λ κ²μ κΉ¨λ¬μλ€.
ν΄μ€ μ½λ
def solution(id_list, report, k):
reported_cnt = {x:0 for x in id_list}
recieved_mail_cnt = [0] * len(id_list)
for r in set(report):
reported_cnt[r.split()[1]] += 1
for r in set(report):
if reported_cnt[r.split()[1]] >= k:
recieved_mail_cnt[id_list.index(r.split()[0])] += 1
return recieved_mail_cnt
λΆμ > μ°μ μ κ³ λμ νμλ₯Ό λνλ΄λ ν΄μ맡μ 미리 0μΌλ‘ μ΄κΈ°ννκ³ λ©μΌμ λ°λ νμ λν id_listλ₯Ό κΈ°μ€μΌλ‘ 0μΌλ‘ μ΄κΈ°ν μν¨λ€. κ·Έλ¦¬κ³ ν μ¬λμ΄ κ°μ μ¬λμ μ¬λ¬λ² μ κ³ ν κ²μ μ μΈνκΈ° μν΄ set(report)λ‘ λ°λ³΅λ¬Έμ λλ¦¬κ³ μλ₯Ό λ€μ΄ "muzi(μ κ³ ν μ¬λ) appeach(μ κ³ λ°μ μ¬λ)" μ΄ rλ‘ λ€μ΄μ€λ©΄ κ°κ° r.split()[0],r.split()[1] λ‘ λνλ΄μ΄ ν΄μ맡μ μΆκ°νλ€. μ΄μ΄μ ν΄μ맡μ key κ°μ΄ λλ μ κ³ λ°μ μ¬λ(r.split()[1])μΌλ‘ λμ νμκ° kμ΄μμΈ κ²½μ°λ§ 1μ μ¦κ°μμΌμ€λ€.
μ½λ©ν μ€νΈ μ°μ΅ - μ κ³ κ²°κ³Ό λ°κΈ°
λ¬Έμ μ€λͺ μ μ μ¬μ 무μ§λ κ²μν λΆλ μ΄μ©μλ₯Ό μ κ³ νκ³ μ²λ¦¬ κ²°κ³Όλ₯Ό λ©μΌλ‘ λ°μ‘νλ μμ€ν μ κ°λ°νλ € ν©λλ€. 무μ§κ° κ°λ°νλ €λ μμ€ν μ λ€μκ³Ό κ°μ΅λλ€. κ° μ μ λ ν λ²μ ν λͺ μ
programmers.co.kr
'Algorithm > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Programmers] λ΄μ (0) | 2022.04.29 |
---|---|
[Programmers] λ‘λμ μ΅κ³ μμμ μ΅μ μμ (0) | 2022.04.28 |
[Programmers] λ¬Έμμ΄ μμΆ (0) | 2022.04.23 |
[Programmers] νλ¦°ν° (0) | 2022.04.14 |
[Programmers] νΌλ³΄λμΉ μ (0) | 2022.04.14 |