๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”ฅ PS(Problem Solving) ๐Ÿ”ฅ/BOJ

[BOJ] #11722 ๊ฐ€์žฅ ๊ธด ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„์ˆ˜์—ด

by dar0m! 2019. 12. 16.
์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ •๋‹ต ๋น„์œจ
1 ์ดˆ 256 MB 64.883%

https://www.acmicpc.net/problem/11722

 

11722๋ฒˆ: ๊ฐ€์žฅ ๊ธด ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด

์ˆ˜์—ด A๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๊ธด ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆ˜์—ด A = {10, 30, 10, 20, 20, 10} ์ธ ๊ฒฝ์šฐ์— ๊ฐ€์žฅ ๊ธด ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์€ A = {10, 30, 10, 20, 20, 10}  ์ด๊ณ , ๊ธธ์ด๋Š” 3์ด๋‹ค.

www.acmicpc.net

 

๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์ˆ˜์—ด๊ณผ ๊ฐ™์€๋ฌธ์ œ์ด๋‹ค.

๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์ˆ˜์—ด์€ 0 →n ๋ฐฉํ–ฅ์œผ๋กœ ์ˆœํšŒํ–ˆ๋‹ค๋ฉด,

๊ฐ€์žฅ ๊ธด ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„์ˆ˜์—ด์—์„œ๋Š” n →0 ๋ฐฉํ–ฅ์œผ๋กœ ์ˆœํšŒํ•œ๋‹ค.

๊ฐ„๋‹จํžˆ ๋ฐฉํ–ฅ๋งŒ ๋ฐ”๊ฟ”ํ’€์—ˆ๋‹ค.

 

๋ฉ”๋ชจ๋ฆฌ ์‹œ๊ฐ„
1120 KB 0 ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<cstdio>
using namespace std;
int n, arr[1005], dp[1005], ans;
int main() {
    scanf("%d"&n);
    for (int i = 0; i < n; i++) {
        scanf("%d"&arr[i]);
    }
    for (int i = n-1; i >= 0; i--) {
        int max = 0;
        for (int j = n-1; j > i; j--) {
            if (arr[j] < arr[i]) {
                if (max < dp[j])
                    max = dp[j];
            }
        }
        dp[i] = max + 1;
        ans = dp[i] > ans ? dp[i] : ans;
    }
    printf("%d", ans);
    return 0;
}
cs

๋Œ“๊ธ€