체μ‘볡 λ¬Έμ ν΄μ€
"체μ‘볡 λ¬Έμ "λ₯Ό νμ μκ³ λ¦¬μ¦(Greedy Algorithm)
μ μ΄μ©ν΄ ν΄κ²°νλ νλ‘κ·Έλ¨μ μμ±ν©λλ€.
νμλ€μκ² μ²΄μ‘볡μ ν¨μ¨μ μΌλ‘ λΆλ°°νμ¬ μ²΄μ‘μμ
μ μ°Έμ¬ν μ μλ νμ μλ₯Ό μ΅λν
νλ κ²μ΄ λͺ©νμ
λλ€.
ν¨μ ꡬν
-
νμ λΆλ₯
:-
real_reserve
λ μ¬λΆμ 체μ‘볡μ κ°μ§ νμλ€ μ€ λλλΉνμ§ μμ νμλ€μ λͺ©λ‘μ λλ€. -
real_lost
λ 체μ‘볡μ μμ΄λ²λ¦° νμλ€ μ€ μ¬λΆμ΄ μλ νμλ€μ λͺ©λ‘μ λλ€.
-
-
체μ‘볡 λΆλ°°
:-
μ¬λΆμ 체μ‘볡μ κ°μ§ κ° νμ(
real_reserve
)μ λν΄, λ°λ‘ μλ²νΈ(r - 1
)λ λ·λ²νΈ(r + 1
)μ νμμ΄ μ²΄μ‘λ³΅μ΄ μλ κ²½μ°(real_lost
μ μν¨), κ·Έ νμμκ² μ²΄μ‘볡μ λΉλ €μ€λλ€. -
체μ‘볡μ λ°μ νμμ
real_lost
λͺ©λ‘μμ μ κ±°λ©λλ€.
-
-
κ²°κ³Ό λ°ν
:- 체μ‘볡μ λ°μ§ λͺ»ν νμμ μ(
len(real_lost)
)λ₯Ό μ 체 νμ μ(n
)μμ λΉΌμ 체μ‘μμ μ μ°Έμ¬ν μ μλ νμ μλ₯Ό λ°νν©λλ€.
- 체μ‘볡μ λ°μ§ λͺ»ν νμμ μ(
def solution(n, lost, reserve): # νμ λΆλ₯ real_reserve = [r for r in reserve if r not in lost] real_lost = [l for l in lost if l not in reserve] # 체μ‘볡 λΆλ°° for r in real_reserve: if r - 1 in real_lost: real_lost.remove(r - 1) elif r + 1 in real_lost: real_lost.remove(r + 1) # κ²°κ³Ό λ°ν return n - len(real_lost)
μ¬μ© μμ
print(solution(5, [2, 4], [1, 3, 5])) # μΆλ ₯: 5
μ΄ μμμμλ 5λͺ μ νμ μ€ 2λͺ μ΄ μ²΄μ‘볡μ μμ΄λ²λ Έκ³ , 3λͺ μ΄ μ¬λΆμ 체μ‘볡μ κ°μ§κ³ μμ΅λλ€.
μ¬λΆμ 체μ‘볡μ κ°μ§ νμλ€μ΄ μλ€ λ²νΈμ νμλ€μκ² μ²΄μ‘볡μ λΉλ €μ€ μ μμΌλ―λ‘,
λͺ¨λ νμμ΄ μ²΄μ‘μμ μ μ°Έμ¬ν μ μκ² λ©λλ€. λ°λΌμ ν¨μλ μ 체 νμ μμΈ 5λ₯Ό λ°νν©λλ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help