#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <string>
#include <queue>
#include <cstring>
#include <functional>
#include <list>
#include <unordered_map>
#include <map>
#include <array>
using namespace std;
using ll = long long;
int binaryTreeArray[2000];
int treeSize;
int root = 1;
int getTreeLength(int i, int j)
{
vector<int> iVec;
vector<int> jVec;
while (i != 0)
{
iVec.emplace_back(i);
i /= 2;
}
while (j != 0)
{
jVec.push_back(j);
j /= 2;
}
auto _i = iVec.rbegin();
auto _j = jVec.rbegin();
while (*_i == *_j)
{
++_i;
++_j;
}
return (iVec.rend() - _i) + (jVec.rend() - _j);
}
int main()
{
treeSize = 7; // 1부터 7까지 차있음.
cout<<getTreeLength(1, 5)<<endl;
}
c++이구 개선할 여지가 잔뜩 있긴 하지만
대충 이런 식으로 짜면 될듯
python도 기본적으로 같게 짜면 될듯,
while (j != 1) << while(j != 0)이랑 while(i != 0)으로 바뀌어야 맞네
와..감사합니다 한번해볼께요!
아직 프로그래밍에 익숙하지 않은 상태에서 저런문제 풀려니 막막하네요 .. 아무튼감사합니다!
using ll = long long; 이거는 무슨효과임?
http://lgstar.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다. - DCW