2018. 6. 13. 09:50, 알고리즘/BOJ
https://www.acmicpc.net/problem/3038
일단 주어진 성질을 만족하는 Tree를 찾아내야하는데, root가 1이고 level이 N인 Tree를 알고 있다고 해봅시다. 이 때 level이 N+1인 tree는 우선 root를 1로 둔 뒤, level이 N인 tree의 원소를 2배하여 leaf가 아닌 모든 원소에 1을 더한 새로운 tree를 왼쪽에 달고, level이 N인 tree의 원소를 2배하여 leaf인 모든 원소에 1을 더한 새로운 tree를 오른쪽에 달아서 만들 수 있습니다.
이제 이것을 preorder로 출력해야하는데, 맨 처음에는 재귀를 활용해보려 했으나 잘 되지 않아 조금 머리가 꼬였는데 결국 그냥 미리 원소와 level을 저장할 15개의 배열을 만들어두고 이전 level의 값을 참고해 만드는 방식으로 해결했습니다.
https://github.com/blisstoner/BOJ/blob/master/3038.cpp
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 1722번: 순열의 순서 (0) | 2018.06.14 |
---|---|
[BOJ] 13325번: Binary Tree (0) | 2018.06.13 |
[BOJ] 6198번: Bad Hair Day (2) | 2018.06.13 |
[BOJ] 11387번: 님 무기가 좀 나쁘시네여 (0) | 2018.06.05 |
[BOJ] 15226번: House of Cards (0) | 2018.06.05 |
[BOJ] 11378번: 열혈강호 4 (0) | 2018.06.05 |
Comments