νλ‘κ·Έλλ¨Έμ€ - μμ λμ§ν
https://programmers.co.kr/learn/courses/30/lessons/12985
μ½λ©ν μ€νΈ μ°μ΅ - μμ λμ§ν
β³β³ κ²μλνκ° κ°μ΅λμμ΅λλ€. μ΄ λνλ Nλͺ μ΄ μ°Έκ°νκ³ , ν λλ¨ΌνΈ νμμΌλ‘ μ§νλ©λλ€. Nλͺ μ μ°Έκ°μλ κ°κ° 1λΆν° Nλ²μ μ°¨λ‘λλ‘ λ°°μ λ°μ΅λλ€. κ·Έλ¦¬κ³ , 1λ²↔2λ², 3λ²↔4λ², ... , N-1λ²↔N
programmers.co.kr
κ°λ¨ν΄λ³΄μ΄λλ° μκ·Ό κΉλ€λ‘μ λ€. λͺ¨λ ν μ€νΈ μΌμ΄μ€λ₯Ό ν΅κ³Όνμ§ λͺ»ν΄ μ½μ§μ μ’ νλ€...
nμ μ΄μ©ν νμμμ΄, aμ bλ₯Ό λλμ μ°μ°μ μ΄μ©ν΄μ κ΄κ³λ₯Ό νμ ν΄μ νλ©΄ λλ€.
κ°μ λμ§μμ λΆμΌλ €λ©΄, (μμ μ μ + 1) / 2 κ° κ°μμΌ νλ€.
μ’ λ£μ‘°κ±΄μ aμ bκ° κ°μ΄ λ¬Άμ¬μμ λλ₯Ό μ λ κ² νννλ€.
μ½λ
class Solution
{
public int solution(int n, int a, int b)
{
int answer = 1;
while(true) {
if((b % 2 == 0 && a == b - 1) || (a % 2 == 0 && b == a - 1)) {
break;
}
a = (a + 1) / 2;
b = (b + 1) / 2;
answer++;
}
return answer;
}
}