관리 메뉴

fatalite

C++ / 예상대진표 본문

코딩 인터뷰/프로그래머스

C++ / 예상대진표

fataliteforu 2023. 5. 9. 18:56

Problem

난이도 : 프로그래머스 2단계 68%

분류 : 비트 연산, 이진법

 

Ideal Solution

#include <iostream>

using namespace std;

int solution(int n, int a, int b)
{
    int answer = 0;

    while (a != b) {
        a = (a + 1) >> 1;   // 2 1 1
        b = (b + 1) >> 1;   // 4 2 1
        ++answer;
    }

    return answer;
}

My Solution

#include <iostream>

using namespace std;

int solution(int n, int a, int b)
{
    int answer = 0;
    if(a > b){
        int tmp = a;
        a = b;
        b = tmp;
    }
    while(answer < n){
        answer++;
        if(a % 2 == 1 && a == b - 1) break;
        int NextA = a / 2 + a % 2;
        int NextB = b / 2 + b % 2;
        a = NextA;
        b = NextB;
    }
    
    return answer;
}

'코딩 인터뷰 > 프로그래머스' 카테고리의 다른 글

C++ / 폰켓몬 / 해시  (0) 2023.05.11
C++ / N개의 최소 공배수 구하기  (0) 2023.05.10
C++ / 구명보트  (0) 2023.05.08
C++ / 카펫  (0) 2023.05.07
C++ / 영어 끝말잇기  (0) 2023.05.07