Skip to content

Commit 4bb0f71

Browse files
committed
[Silver II] Title: 가장 긴 증가하는 부분 수열, Time: 96 ms, Memory: 109544 KB -BaekjoonHub
1 parent 72f605e commit 4bb0f71

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# [Silver II] 가장 긴 증가하는 부분 수열 - 11053
2+
3+
[문제 링크](https://www.acmicpc.net/problem/11053)
4+
5+
### 성능 요약
6+
7+
메모리: 109544 KB, 시간: 96 ms
8+
9+
### 분류
10+
11+
다이나믹 프로그래밍
12+
13+
### 제출 일자
14+
15+
2025년 4월 2일 13:25:19
16+
17+
### 문제 설명
18+
19+
<p>수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.</p>
20+
21+
<p>예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {<strong>10</strong>, <strong>20</strong>, 10, <strong>30</strong>, 20, <strong>50</strong>} 이고, 길이는 4이다.</p>
22+
23+
### 입력
24+
25+
<p>첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다.</p>
26+
27+
<p>둘째 줄에는 수열 A를 이루고 있는 A<sub>i</sub>가 주어진다. (1 ≤ A<sub>i</sub> ≤ 1,000)</p>
28+
29+
### 출력
30+
31+
<p>첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다.</p>
32+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
n = int(input())
2+
nums = list(map(int, input().split()))
3+
4+
dp = [1] * n
5+
6+
for i in range(1, n):
7+
for j in range(i):
8+
if nums[i] > nums[j]:
9+
dp[i] = max(dp[i], dp[j] + 1)
10+
print(max(dp))

0 commit comments

Comments
 (0)