# Week9_day2 ## [BOJ 9465] 스티커 문제 링크 [BOJ 9465](https://www.acmicpc.net/problem/9465) ## 코드 - 조성원 [Solved](https://github.com/ji3427/300solves/blob/master/JSWww/WEEK9/9465.cpp) - 지화영 [Solved](https://github.com/ji3427/300solves/blob/master/ji3427/week9/baekjoon_9465.cpp) ## 풀이 - dp 문제 ```cpp // 점화식 dp[0][i] += max(dp[1][i-2], dp[1][i-1]); dp[1][i] += max(dp[0][i-2], dp[0][i-1]); ``` - 현재 위치에서 전전 대각선 위치와 전 대각선 위치를 비교해야 한다. 1. 전 대각선 |0|1|2| |-|-|-| |x|x|o| |x|a|x| 2. 전전 대각선 |0|1|2| |-|-|-| |x|x|o| |b|x|x| ## [BOJ 2263] 트리의 순회 문제 링크 [BOJ 2263](https://www.acmicpc.net/problem/2263) ## 코드 - 조성원 [Solved](https://github.com/ji3427/300solves/blob/master/JSWww/WEEK9/2263.cpp) - 지화영 [Solved](https://github.com/ji3427/300solves/blob/master/ji3427/week9/baekjoon_2263.cpp) ## 풀이 - 트리 순회, 재귀 문제 - postorder의 맨 마지막은 트리의 루트이고, inorder에서 루트의 인덱스를 찾게 되면 그 인덱스로부터 왼쪽 서브트리와 오른쪽 서브트리로 나눌 수 있다. preorder는 V L R 순으로 트리를 순회하므로 트리의 루트를 출력 후 inorder를 통해 나눠진 왼쪽 서브트리, 오른쪽 서브트리 순으로 트리 순회를 재귀한다. ## 여담 - inorder에서 루트를 찾을 때 for문으로 찾지 말고 루트의 인덱스를 저장하는 배열을 만들어 찾게 되면 시간이 1200ms -> 90ms로 줄어든다.