[BOJ] 3038번: JOGURT

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