์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ๋ณํฉ์ ๋ ฌ
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ์ด์ฌ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์ค๋ธ์
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฃ๊ตฌ์กฐ
- ๋์ ํฉ
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ์ ๋ ฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๊ทธ๋ํํ์
- BFS
- ๊ตฌํ
- ๋จธ์ง์ํธ
- ์ฐ์ ์์ํ
- ๋๋น์ฐ์ ํ์
- SQL
- ๊ทธ๋ํ
- ๊ทธ๋ฆฌ๋
- ์ํ
- ์์ํ์
- DFS
- db
- LIS
- ๋์ ๊ณํ๋ฒ
- ๊น์ด์ฐ์ ํ์
- ๋ฐฑ์ค
- DP
- ์์๊ตฌํ๊ธฐ
๐๐ญ๐ฐ๐ธ ๐ฃ๐ถ๐ต ๐ด๐ต๐ฆ๐ข๐ฅ๐บ
[๋ฐฑ์ค] 11722๋ฒ: ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด - C++ ๋ณธ๋ฌธ
[๋ฐฑ์ค] 11722๋ฒ: ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด - C++
.23 2021. 7. 26. 22:59๋ฌธ์
์์ด A๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์๋ฅผ ๋ค์ด, ์์ด A = {10, 30, 10, 20, 20, 10} ์ธ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ A = {10, 30, 10, 20, 20, 10} ์ด๊ณ , ๊ธธ์ด๋ 3์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ด A์ ํฌ๊ธฐ N (1 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค์๋ ์์ด A๋ฅผ ์ด๋ฃจ๊ณ ์๋ Ai๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ Ai ≤ 1,000)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์์ด A์ ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ค.
DP๋ฅผ ์ด์ฉํ์ฌ ํ ์ ์๋ ๋ฌธ์ .
์ฌ์ค์ 11053๋ฒ ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด ๋ฌธ์ ์์ ๊ดํธ๋ง ๋ฐ๊พธ๋ฉด ํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ์ค๋ช ์ ๋งํฌ ์ฐธ์กฐ.
์ ๊ทผ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
1. A ๋ฐฐ์ด ๋ด์์ A[i]๋ณด๋ค ํฐ ๊ฐ์ ์ฐพ๋๋ค. (1 ≤ i ≤ N, 1 ≤ j < i)
2. A[i]๋ณด๋ค ํฐ ๊ฐ์ธ ์์์ ์์น๋ฅผ j๋ผ๊ณ ํ ๋, ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ฌ D[i]๋ฅผ ๊ตฌํ๋ค.
2-1. D[i] ≤ D[j], A[i]๊น์ง์ ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ ๊ธธ์ด๋ A[j]๊น์ง์ ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ ๊ธธ์ด D[j]์ A[i]๋ฅผ ํฌํจํ์ฌ 1์ ๋ํ ๊ฐ์ด๋ฏ๋ก D[i] = D[j] + 1
2-2. D[i] > D[j], A[i]๊น์ง์ ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ ๊ธธ์ด๋ ์ฌ์ ํ D[i] = D[i]
3. D[i]๊น์ง์ ๊ฐ ์ค ๊ฐ์ฅ ํฐ ๊ฐ(์ต๋ ๊ธธ์ด)์ length์ ์ ์ฅ.
์ฝ๋
#include <cstdio>
#define MAX 1001
int DP(int num);
int main(void) {
int n;
scanf("%d", &n);
printf("%d\n", DP(n));
return 0;
}
int DP(int num) {
int A[MAX] = { 0 };
int memo[MAX] = { 0 };
int length = 0;
for(int i = 1; i <= num; i++) {
scanf("%d", &A[i]);
}
for(int i = 1; i <= num; i++) {
memo[i] = 1;
for(int j = 1; j < i; j++) {
if(A[i] < A[j]) {
memo[i] = (memo[i] > memo[j] ? memo[i] : memo[j] + 1);
}
}
length = (length > memo[i] ? length : memo[i]);
}
return length;
}
'์ฝ๋ฉํ ์คํธ ์ค๋น > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 11054๋ฒ: ๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ๋ถ๋ถ ์์ด - C++ (0) | 2021.07.28 |
---|---|
[๋ฐฑ์ค] 9465๋ฒ: ์คํฐ์ปค - C++ (0) | 2021.07.27 |
[๋ฐฑ์ค] 11055๋ฒ: ๊ฐ์ฅ ํฐ ์ฆ๊ฐ ๋ถ๋ถ ์์ด - C++ (0) | 2021.07.25 |
[๋ฐฑ์ค] 11053๋ฒ: ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด - C++ (0) | 2021.07.24 |
[๋ฐฑ์ค] 2193๋ฒ: ์ด์น์ - C++ (0) | 2021.07.23 |