//완전 이진 트리
int re[12][1101];
int input[1024];
void print(int k){
for(int i=0;i<(pow(2,k)-1);++i){
for(int j=0;j<k;++j){
int po=pow(2,j);
if((i/po)%2==0)
{
re[k-j-1][i/po/2] = input[i];
break;
}
}
}
}
int main(){
int k;
cin >> k;
for(int i = 0;i<(pow(2,k) - 1);++i){
cin >> input[i];
}
print(k);
for(int i=0;i<k;i++){
for(int j=0;j<pow(2,i);++j)
cout << re[i][j] << ' ';
cout<<endl;
}
}
반응형
'알고리즘 문제 > C++' 카테고리의 다른 글
[프로그래머스] Level2 : 전화번호 목록 - C++ (0) | 2021.01.23 |
---|---|
[프로그래머스] Level2 : 더 맵게 - C++ (0) | 2021.01.17 |
[백준] 5639번 : 이진 검색 트리 - C++ (0) | 2021.01.04 |
[프로그래머스] Level2 : 주식가격 - C++ (0) | 2020.12.27 |
[프로그래머스] Level2 : 다리를 지나는 트럭 - C++ (2) | 2020.12.20 |