1965번: 상자넣기
정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가
www.acmicpc.net
이 문제 알고리즘 보면 다이나믹 프로그래밍이라 되어있는데
이 문제 유형이 다이나믹 프로그래밍 중에서도
최장증가수열이라고 LIS 유형인가봐용
구글링 해보니까
LIS가 이 문제 그자체인데
증가하는 원소들의 가장 긴 부분집합이래요
[1][LIS : 최장증가수열 알고리즘] - DP 를 이용한 알고리즘 (Longest Increasing Subsequence Algorithm) (tistory.com)
[1][LIS : 최장증가수열 알고리즘] - DP 를 이용한 알고리즘 (Longest Increasing Subsequence Algorithm)
LIS Algorithm LIS 알고리즘 (Longest Increasing Subsequence Algorithm) 은 최장증가수열 알고리즘으로 증가하는 원소들의 가장 긴 부분집합을 찾는 알고리즘이다. 다음과 같이 7개의 숫자가 나열되어있을때 여
source-sc.tistory.com
이분 글 참고했슴니당
저분 글 보시면 완죤 자세히 나와있슴니당
import sys
input = sys.stdin.readline
n = int(input())
arr = list(map(int,input().split()))
dp = [ 1 for _ in range(n)]
for i in range(1,n):
for j in range(i):
if arr[j] < arr[i] and dp[j] + 1 > dp[i]:
dp[i] = dp[j] + 1
print(max(dp))
알고리즘 공부 마니 해야겠어용
잼네요
'BOJ' 카테고리의 다른 글
[python] 백준 1535번 - 안녕 (2) | 2023.02.22 |
---|---|
[python] 백준 1141번 - 접두사 (0) | 2023.02.21 |
[python] 백준 13414번 - 수강신청 (1) | 2023.02.18 |
[python] 백준 15649번 - N과 M (2) | 2023.02.18 |
[python] 백준 10025번 - 게으른 백곰 (3) | 2023.02.18 |
댓글