[νλ‘κ·Έλλ¨Έμ€/python] μμ λμ§ν
λ¬Έμ μ€λͺ
β³β³ κ²μλνκ° κ°μ΅λμμ΅λλ€. μ΄ λνλ Nλͺ μ΄ μ°Έκ°νκ³ , ν λλ¨ΌνΈ νμμΌλ‘ μ§νλ©λλ€.
Nλͺ μ μ°Έκ°μλ κ°κ° 1λΆν° Nλ²μ μ°¨λ‘λλ‘ λ°°μ λ°μ΅λλ€. κ·Έλ¦¬κ³ , 1λ²↔2λ², 3λ²↔4λ², ... , N-1λ²↔Nλ²μ μ°Έκ°μλΌλ¦¬ κ²μμ μ§νν©λλ€.
κ° κ²μμμ μ΄κΈ΄ μ¬λμ λ€μ λΌμ΄λμ μ§μΆν μ μμ΅λλ€. μ΄λ, λ€μ λΌμ΄λμ μ§μΆν μ°Έκ°μμ λ²νΈλ λ€μ 1λ²λΆν° N/2λ²μ μ°¨λ‘λλ‘ λ°°μ λ°μ΅λλ€.
λ§μ½ 1λ²↔2λ² λΌλ¦¬ 겨루λ κ²μμμ 2λ²μ΄ μΉλ¦¬νλ€λ©΄ λ€μ λΌμ΄λμμ 1λ²μ λΆμ¬λ°κ³ , 3λ²↔4λ²μμ 겨루λ κ²μμμ 3λ²μ΄ μΉλ¦¬νλ€λ©΄ λ€μ λΌμ΄λμμ 2λ²μ λΆμ¬λ°κ² λ©λλ€.
κ²μμ μ΅μ’ ν λͺ μ΄ λ¨μ λκΉμ§ μ§νλ©λλ€.
μ΄λ, μ²μ λΌμ΄λμμ Aλ²μ κ°μ§ μ°Έκ°μλ κ²½μμλ‘ μκ°νλ Bλ² μ°Έκ°μμ λͺ λ²μ§Έ λΌμ΄λμμ λ§λλμ§ κΆκΈν΄μ‘μ΅λλ€.
κ²μ μ°Έκ°μ μ N, μ°Έκ°μ λ²νΈ A, κ²½μμ λ²νΈ Bκ° ν¨μ solutionμ λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ²μ λΌμ΄λμμ Aλ²μ κ°μ§ μ°Έκ°μλ κ²½μμλ‘ μκ°νλ Bλ² μ°Έκ°μμ λͺ λ²μ§Έ λΌμ΄λμμ λ§λλμ§ return νλ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
λ¨, Aλ² μ°Έκ°μμ Bλ² μ°Έκ°μλ μλ‘ λΆκ² λκΈ° μ κΉμ§ νμ μ΄κΈ΄λ€κ³ κ°μ ν©λλ€.
νμ΄
def solution(n, a, b):
answer = 1
while 1:
if (a % 2 == 0 and a - 1 == b) or (a % 2 != 0 and a + 1 == b):
return answer
a = ton(a)
b = ton(b)
answer += 1
def ton(x):
if x % 2 == 0:
return int(x / 2)
else :
return int((x / 2) + 1)