인프런 커뮤니티 질문&답변
( 참고)코드 길이 반으로 줄여보았습니다
작성
·
211
0
import sys
sys.stdin = open("input.txt", 'r')
n = int(input())
nums = list(map(int, input().split()))
# 각각의 숫자가 가질 수 있는 가장 긴 길이 저장하는 리스트
max_list = [0]*(max(nums)+1)
# 각각의 숫자에 대해 자신보다 작은 수 중에 가장 큰 수 + 1
for num in nums:
max_list[num] = max(max_list[:num])+1
print(max(max_list))
퀴즈
71%나 틀려요. 한번 도전해보세요!
동적 계획법(Dynamic Programming)의 핵심 아이디어는 무엇일까요?
문제를 가능한 모든 경우를 탐색하여 최적해를 찾습니다.
현재 상태에서 가장 좋은 선택만을 따라갑니다.
큰 문제를 작은 부분 문제로 나누어 해결하고 그 해답을 재사용합니다.
데이터를 정렬하여 검색 성능을 최적화합니다.





