λ¬Έμ
νλ‘κ·Έλλ¨Έμ€ - μ΅κ³ μ μ§ν©
νμ΄ κ³Όμ
μμ°μ n κ°λ₯Ό μ¬μ©ν΄μ μ΄ν©μ΄ Sκ° λλ©° λμμ κ° μμμ κ³±μ΄ μ΅λμΈ μ§ν©μ μ΅κ³ μ μ§ν©
μ΄λΌκ³ ννν©λλ€.
μ
λ ₯μΌλ‘ μ£Όμ΄μ§λ ν© Sκ° 1μ΅μ΄κ³ μμ°μ nμ κ°μλ μ΅λ 10,000 μ΄κΈ° λλ¬Έμ λͺ¨λ μ‘°ν©μ λ§λ€μ΄λ³΄λ λ°©λ²μ μκ°λ΄μ μνμ΄ λΆκ°λ₯ν©λλ€.
μ’ λ ν¨μ¨μ μΈ λ°©λ²μ μμκΉμ? λ°λ‘ νμμ μΈ μ ν
μΌλ‘ μ΅μ μ λ΅μ ꡬν μ μμ΅λλ€. μ΄λ₯Ό μ¦λͺ
νκΈ° μν΄ λ€μκ³Ό κ°μ΄ μκ°ν΄λ΄€μ΅λλ€.
μ°μ μ΄ k κ°μ j ν©μ΄ S λ₯Ό λ§μ‘±νλ€κ³ κ°μ νκ² μ΅λλ€.
j j j ... j => μ΄ k κ°μ΄λ©° ν©μ΄ S, λ°λΌμ j\*k = S
ν©μ΄ Sκ° λλ μ«μμ μ‘°ν©μ μλΉν λ€μνλ―λ‘ μ΄λ²μλ jμ μμμ μμ μ μ l λ§νΌ κ°μ΄ μ°¨μ΄κ° λλ κ²½μ°λ₯Ό λ°μ Έλ³΄κ² μ΅λλ€.
j-l j j j .... j+l => ν©μ μ¬μ ν S
μ΄ κ²½μ° λͺ¨λ μμμ ν©μ΄ S μ΄κΈ° λλ¬Έμ ν μμμμ l λ§νΌ κ°μνμΌλ―λ‘ λ€λ₯Έ μμμμ l λ§νΌ κ°μ΄ λν΄μ‘μ κ²μ
λλ€.
κ·Έλ λ€λ©΄ λͺ¨λ μμλ₯Ό κ³±νμ κ²½μ° μ΄λ»κ² λ κΉμ?
κΈ°μ‘΄μλ j*k
μμ§λ§ λ μμμ κ°μ΄ λ¬λΌμ Έμ (j-l)(j+l)(j*(k-2))
κ° λμμ΅λλ€.
λ°λΌμ μ°¨μ΄κ° λ°μνλ λ μμλ§ λΉκ΅νμλ©΄ j^2-l^2 < j^2
μ΄κΈ° λλ¬Έμ λͺ¨λ κ°μ΄ κ· λ±ν 첫 λ²μ§Έ κ²½μ°κ° λͺ¨λ μμμ κ³±μ΄ λ ν¬λ€λ κ²μ μ μ μμ΅λλ€.
κ·Έλ¬λ―λ‘ μ΅κ³ μ μ§ν©μ μ°ΎκΈ° μν΄μλ λͺ¨λ μμλ₯Ό μ΅λν κ· λ±νκ² λΆλ°°ν΄μ€μΌνλ€
λΌλ μ¬μ€μ μ μ μμ΅λλ€.
μ½λλ‘ κ΅¬νν λλ Sλ₯Ό nμΌλ‘ λλ λͺ«μ n κ° λ§νΌ ν λΉν λ€ S μμ nμ λλ΄μλ λ°μν λλ¨Έμ§ κ°μ κ° μμμ κ· λ±νκ² λλ μ£Όλ©΄ λ©λλ€.
ꡬν μ½λ μ체λ 짧μμ§λ§ λ§μ κ²μ μκ°ν΄λ³Ό μ μλ λ¬Έμ μμ΅λλ€.
μ½λ
def solution(n, s):
if s < n:
return [-1]
quo, remain = divmod(s, n)
answer = [quo] * n
# λλ¨Έμ§λ₯Ό κ· λ±νκ² λΆλ°°νλ€
idx = n-1
for i in range(remain):
answer[idx - i] += 1
return answer
'π algorithm > programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ‘κ·Έλλ¨Έμ€ Level 2 - νκ² λλ² (0) | 2021.03.01 |
---|---|
νλ‘κ·Έλλ¨Έμ€ Level 3 - λ€νΈμν¬ (0) | 2021.03.01 |
νλ‘κ·Έλλ¨Έμ€ Level 2 - ν° μ λ§λ€κΈ° (0) | 2021.03.01 |
νλ‘κ·Έλλ¨Έμ€ Level 3 - μ¬ μ°κ²°νκΈ° (0) | 2021.03.01 |
νλ‘κ·Έλλ¨Έμ€ Level 4 - κ²μ 맡 μ΅λ¨κ±°λ¦¬ (0) | 2021.03.01 |
π¬ λκΈ