π 곡λΆνλ μ§μ§μνμΉ΄λ μ²μμ΄μ§?
[Programmers] μ°μλ λΆλΆ μμ΄μ ν© λ³Έλ¬Έ
π¦₯ μ½ν
/Programmers
[Programmers] μ°μλ λΆλΆ μμ΄μ ν©
μ§μ§μνμΉ΄ 2023. 4. 14. 00:54728x90
λ°μν
μ°μλ λΆλΆ μμ΄μ ν©
λΉλ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬λ μμ΄μ΄ μ£Όμ΄μ§ λ, λ€μ 쑰건μ λ§μ‘±νλ λΆλΆ μμ΄
κΈ°μ‘΄ μμ΄μμ μμμ λ μΈλ±μ€μ μμμ κ·Έ μ¬μ΄μ μμλ₯Ό λͺ¨λ ν¬ν¨νλ λΆλΆ μμ΄
λΆλΆ μμ΄μ ν©μ k
ν©μ΄ kμΈ λΆλΆ μμ΄μ΄ μ¬λ¬ κ°μΈ κ²½μ° κΈΈμ΄κ° 짧μ μμ΄μ μ°ΎκΈ°
κΈΈμ΄κ° 짧μ μμ΄μ΄ μ¬λ¬ κ°μΈ κ²½μ° μμͺ½(μμ μΈλ±μ€κ° μμ)μ λμ€λ μμ΄μ μ°ΎκΈ°
μμ΄μ λνλ΄λ μ μ λ°°μ΄ sequenceμ λΆλΆ μμ΄μ ν©μ λνλ΄λ μ μ kκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ,
쑰건μ λ§μ‘±νλ λΆλΆ μμ΄μ μμ μΈλ±μ€μ λ§μ§λ§ μΈλ±μ€λ₯Ό λ°°μ΄μ λ΄μ return νλ solution ν¨μ
μμ΄μ μΈλ±μ€λ 0λΆν° μμ
# μμ΄μ λνλ΄λ μ μ λ°°μ΄ sequence, λΆλΆ μμ΄μ ν© k
def solution(sequence, k):
answer = []
n = len(sequence)
max_sum = 0
end = 0
res = []
for i in range(n):
# λΆλΆ μμ΄μ ν©μ΄ k λ λκΉμ§ ν©μ°νκΈ°
while max_sum < k and end < n:
max_sum += sequence[end]
end += 1
# λΆλΆ μμ΄μ ν© kκ³Ό κ°λ€λ©΄
if max_sum == k:
# [μμμ , λμ , κΈΈμ΄]
res.append([i, end-1, end-1-i])
max_sum -= sequence[i]
# κΈΈμ΄ μ§§μ μμΌλ‘ μ λ ¬
res = sorted(res, key=lambda x: x[2])
# [μμμ , λμ ]
return res[0][:2]
μ§λ¬ΈνκΈ°μμ μ°Έκ³ νμμ΅λλ€!!
max_sum μμ μ sequence[i] λΉΌλκ±ΈκΉ
ν©μ΄ kκ° μλλκΉ λΉΌκ³ λ€μ λμ νλ 건κ°
728x90
λ°μν
'π¦₯ μ½ν > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Programmers] κ²μ 맡 μ΅λ¨κ±°λ¦¬ (0) | 2023.04.14 |
---|---|
[Programmers] 곡μ μ°μ± (0) | 2023.04.14 |
[Programmers] κ³Όμ μ§ννκΈ° (0) | 2023.04.14 |
[Programmers] μΆμ΅ μ μ (0) | 2023.04.14 |
[Programmers] λ¬λ¦¬κΈ° κ²½μ£Ό (0) | 2023.04.12 |
Comments