alpyrithm_알파이리즘

[알고리즘][Python] 백준(BOJ) 1965 상자넣기_파이썬 본문

Algorithm/백준 알고리즘_Python

[알고리즘][Python] 백준(BOJ) 1965 상자넣기_파이썬

알파이 2020. 9. 11. 08:19

 

1965 상자넣기    https://www.acmicpc.net/problem/1965

 

1965번: 상자넣기

정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 ��

www.acmicpc.net

 

 

 

 

 

문제 풀기 전 공부할 것 : 다이나믹 프로그래밍

 

 

 

 

 

 

 

풀이

<내용>

  • 상자를 입력받고 dp array를 1(해당 상자 1개)로 초기화해서 만든다.
  • for문을 돌면서 주어진 상자 순서보다 앞에 있는 상자 중 크기가 작을 때 상자의 수+1과 비교해서 큰 값을 dp에 저장한다.
  • dp 중 max인 값을 출력한다.

 

 

<코드>

n = int(input())
box = list(map(int, input().split()))
dp = [1 for _ in range(n)]
for i in range(1, n):
    for j in range(i):
        if box[i] > box[j]:
            dp[i] = max(dp[i], dp[j]+1)
print(max(dp))

 

 

 

 

 

 

728x90
반응형
Comments