코딩 테스트

프로그래머스 - 예상 대진표

__sapar 2024. 8. 7. 14:34

a 와 b 가 2,3    4,5 이렇게 붙을 때에 예외처리를 해주어야한다.

 

#include <iostream>

using namespace std;

int solution(int n, int a, int b)
{
    int answer = 0;
    
    if(a<b)
    {
        while(true)
        {
            answer++;
            if( (b - a) == 1 && (a %2 == 1 && b%2 ==  0))
            {
                
                break;
            }
            
            if(a % 2 == 0 )
            {
                a = a * 0.5;
            }
            else
            {
                a = a* 0.5 + 1;
            }
            
            if(b % 2 == 0 )
            {
                b = b * 0.5;
            }
            else
            {
                b = b* 0.5 + 1;
            }
            
        }
    }
    else
    {
        while(true)
        {
            answer++;
            if( (a - b) == 1&& (a %2 == 0 && b%2 ==  1))
            {
                
                break;
            }
            
            if(a % 2 == 0 )
            {
                a = a * 0.5;
            }
            else
            {
                a = a* 0.5 + 1;
            }
            
            if(b % 2 == 0 )
            {
                b = b * 0.5;
            }
            else
            {
                b = b* 0.5 + 1;
            }
        }
    }
 
    
    
    
    return answer;
}