---
# System prepended metadata

title: Week9_day2

---

# 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로 줄어든다.
