import kotlin.math.*
class Solution {
fun solution(n: Int, a: Int, b: Int): Int {
var answer = 0
var aIndex = a
var bIndex = b
var count = 0
while(bIndex != aIndex)
{
if(aIndex != 1) aIndex = (aIndex+1)/2
if(bIndex != 1) bIndex = (bIndex+1)/2
count++
}
answer = count
return answer
}
}
그렇게 어려운 문제는 아니였는데 n이 없이도 풀수있는데 매개변수로 주고 중간 중간 실수 한게 합해져서
n을 써서 풀려고 하다가 시간을 조금 먹었다.
해설
a,b 는 대진표상 서로 옆에 있어야 만날 것이다.
이 가 되게 하기위해 a와 b을 2로 계속 나누면 언젠가는 a,b는 서로소가 되게 된다.
이 횟수가 answs의 값이다.
이 때 a와 b는 작은 수가 홀수, 큰수가 짝은 수가 되야 하기 때문에
+1 을하고 2로 나눠서 소수점을 버리는 식으로 하면 a,b 가 같을 때가 위 조건이 되면서 서로소가 된다.
H-Index(2레벨) (0) | 2023.01.21 |
---|---|
멀리뛰기(2레벨) (0) | 2023.01.21 |
N개의 최소공배수(2레벨) (0) | 2023.01.15 |
카펫(2레벨) (0) | 2023.01.15 |
피보나치 수(2레벨) (0) | 2023.01.15 |
댓글 영역