programmers_예상 대진표_java
2023. 4. 3. 18:07ㆍAlgorithm/Programmers
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12985#
class Solution
{
public int solution(int n, int a, int b)
{
int answer = 0;
answer = search(n, a, b);
return answer;
}
public int findMaxRound(int n){ // 최대 라운드 수 계산
int cnt = 0;
while(n>1){
n = n/2;
cnt++;
}
return cnt;
}
public int search(int n, int a, int b){
int start = 1;
int end = n;
int big = Math.max(a, b);
int small = Math.min(a, b);
int cnt = findMaxRound(n); // 최대 라운드수
while(start <= end){
int mid = ( start + end ) /2;
if(small <= mid && big > mid){ // 두 사이가 멈
break;
}
else if(small >= mid && big > mid) {// 모두 큰 경우
start = mid + 1;
}
else if(small < mid && big <= mid) {// 모두 작은 경우
end = mid - 1;
}
cnt--;
}
return cnt;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
programmers_N개의 최소공배수_java (0) | 2023.04.04 |
---|---|
programmers_점프와 순간 이동_java (0) | 2023.04.03 |
programmers_짝지어 제거하기_java (0) | 2023.04.03 |
programmers_다음 큰 숫자_java (0) | 2023.04.03 |
programmers_피보나치 수_java (0) | 2023.04.03 |