< 문제 >
< 입출력 >
< 풀이 >
이전에 풀었던 백준 11722번과 매우 유사한 문제였다.
비슷한 로직으로 뒤의 숫자가 더 크면 dp[ 뒤의 숫자 ] 와 dp[앞의 숫자] + 1 을 비교해서 더 큰 수를 저장했다.
< 코드 >
N = int(input())
arr = list(map(int, input().split()))
dp = [1 for _ in range(N)]
for i in range(N):
for j in range(i+1, N):
if arr[i] < arr[j]:
dp[j] = max(dp[i] + 1, dp[j])
print(max(dp))
'코딩 테스트 > 다이나믹 프로그래밍' 카테고리의 다른 글
[백준 1082번] 방 번호 문제 풀이 (with Python) (0) | 2023.09.25 |
---|---|
[백준 1005번] ACM Craft 문제 풀이 (0) | 2023.09.11 |
[백준 10844번] 쉬운 계단 수 문제풀이 (with Python) (0) | 2023.08.23 |
[백준 11722번] 가장 긴 감소하는 부분 수열 문제 풀이 with Python (0) | 2023.08.22 |
[백준 11049번] 행렬 곱셈 순서 문제 풀이 (0) | 2023.08.21 |
댓글