문제 

https://school.programmers.co.kr/learn/courses/30/lessons/12985

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

나의 답

#include <iostream>
using namespace std;
void m_fx(int a, int b, int& answer)
{
    answer++;
    if (a % 2 == 1 && b - a == 1) return;
    m_fx((a+1)/2, (b+1)/2, answer);
}

int solution(int n, int a, int b)
{
    int answer = 0;
    if (a > b) { m_fx(b, a, answer); }
    else{   m_fx(a, b, answer); }
    return answer;
}

다른사람의 답

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;
}
Posted by pi92

블로그 이미지
pi92

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.5
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함