IT/ps
백준 1965번 상자넣기
u149_cinderella
2025. 3. 8. 18:48
처음보고 진짜 어떻게 접근해야하나 싶었는데
곰곰히 생각해보니까 그냥 LIS다
n도 1000이니까 n^2 LIS로 풀면 될듯하다
import sys
n=int(sys.stdin.readline().rstrip())
arr=list(map(int,sys.stdin.readline().rstrip().split()))
v=[0]*n
for i in range(n):
for j in range(i):
if arr[i]>arr[j]:
v[i]=max(v[i],v[j]+1)
print(v[n-1]+1)
이왜틀...
import sys
n=int(sys.stdin.readline().rstrip())
arr=list(map(int,sys.stdin.readline().rstrip().split()))
v=[1]*n
for i in range(n):
for j in range(i):
if arr[i]>arr[j]:
v[i]=max(v[i],v[j]+1)
print(v[n-1])
아 최대개수다. 마지막요소의 개수가 아니다
import sys
n=int(sys.stdin.readline().rstrip())
arr=list(map(int,sys.stdin.readline().rstrip().split()))
v=[1]*n
for i in range(n):
for j in range(i):
if arr[i]>arr[j]:
v[i]=max(v[i],v[j]+1)
print(max(v))