[백준] 11053 가장 긴 증가하는 부분

cheeeese·2022년 7월 17일
0

코딩테스트 연습

목록 보기
115/151
post-thumbnail

문제

https://www.acmicpc.net/problem/11053

내 코드

n=int(input())

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

풀이

  • 수열의 시작을 알 수 없으므로 이중 for문을 사용해야 한다
  • 본인의 앞부분에 더 작은 수가 있고
  • 수열의 길이를 저장하는 리스트인 dp에서 본인의 인덱스의 수가 더 크다면
  • dp[i]를 더 큰 수로 바꿈
  • 한 바퀴를 돌면 dp[i]+=1
  • dp의 수 중 가장 큰 값으로 출력

0개의 댓글