λ°μν
π€λ¬Έμ ν΄κ²°
1. λμ νμ΄
μ½μμ κ°μλ₯Ό ꡬνλ λ°©λ²:
μμΈμ λΆν΄λ₯Ό νκ³ , κ·Έ κ±°λμ κ³±μ +1μ νλ©΄ μ½μκ° λμ¨λ€.
κ±°λμ κ³±μ΄ 2κ° μ΄μμ΄λΌλ©΄, κ°κ°μ κ±°λμ κ³±μ +1μ νκ³ κ·Έ μ«μλ€μ μλ‘ κ³±ν΄μ€λ€.
2. λ€λ₯Έ μ’μ νμ΄
λͺ¨λ μ«μλ μ½μμ κ°μκ° μ§μκ°μ΄λ€.
μμΈλ‘ μ κ³±μλ μ½μμ κ°μκ° νμμ΄λ€. μ κ³±μ΄κΈ° λλ¬Έ...
π¨ λν΄νΈλνΈμ 리λμ€κΉμ§ μ¨κ°λ©΄μ μ΄μ¬ν νμμ§λ§, μνμ μνλ©΄ μ λ κ² μ½κ² ν μ μλ€....π
π»μμ€ μ½λ
from collections import defaultdict
from functools import reduce
def solution(left, right):
"""
μ½μμ κ°μλ₯Ό ꡬνλ λ°©λ²:
μμΈμ λΆν΄λ₯Ό νκ³ , κ·Έ κ±°λμ κ³±μ +1μ νλ©΄ μ½μκ° λμ¨λ€.
κ±°λμ κ³±μ΄ 2κ° μ΄μμ΄λΌλ©΄, κ°κ°μ κ±°λμ κ³±μ +1μ νκ³ κ·Έ μ«μλ€μ μλ‘ κ³±ν΄μ€λ€.
"""
"""
λͺ¨λ μ«μλ μ½μμ κ°μκ° μ§μκ°μ΄λ€.
μμΈλ‘ μ κ³±μλ μ½μμ κ°μκ° νμμ΄λ€. μ κ³±μ΄κΈ° λλ¬Έ...
"""
answer = 0
plus_minus = []
for i in range(left, right + 1):
power_dict = defaultdict(int)
if i == 1:
power_dict[1] = 0
num = i
div = 2
while div <= i:
if num % div == 0:
power_dict[div] += 1
num //= div
else:
div += 1
result = list(map(lambda x: x+1,power_dict.values()))
plus_minus.append(multiply(result))
for operator in plus_minus:
if operator % 2 == 0:
answer += left
else:
answer -= left
left += 1
return answer
def multiply(arr):
return reduce(lambda x, y: x * y, arr)
πλ¬Έμ νμΈ
μΆμ²: νλ‘κ·Έλλ¨Έμ€
λ§ν¬: https://programmers.co.kr/learn/courses/30/lessons/77884?language=python3
λ°μν