본문 바로가기

코딩 테스트

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

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;
}

'코딩 테스트' 카테고리의 다른 글

프로그래머스 - 스킬트리  (0) 2024.08.22
프로그래머스 - 더 맵게  (0) 2024.08.09
프로그래머스 - 네트워크 (bfs, dfs or union-find)  (0) 2024.07.26
백준 1246  (0) 2024.06.12
백준 11004  (0) 2024.06.11