본문 바로가기
BOJ

[python] 백준 1965번 - 상자넣기

by yujinkimkim 2023. 2. 19.

1965번: 상자넣기 (acmicpc.net)

 

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

댓글