상세 컨텐츠

본문 제목

[소프티어] 징검다리

Algorithm

by 쑤야. 2024. 1. 29. 13:45

본문

https://softeer.ai/practice/6293/history?questionType=ALGORITHM

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai

 

접근


  • 밟을 수 있는 돌의 최대 개수를 구해야 한다
    → N의 최댓값은 3000으로, O(N**2)의 시간복잡도가 가능하다
     인덱스 i에 대해, i-1 까지의 최장 길이를 구한다. '최장 길이 + 1' 이 현재 인덱스에 대한 최장 길이를 의미한다

 

최장 증가 수열(LIS, Longest Increasing Subsequence)


https://4legs-study.tistory.com/106

 

최장 증가 수열 (LIS, Longest Increasing Subsequence)

최장 증가 수열 (LIS, Longest Increasing Subsequence) 최장 증가 수열, 정확히 최장 증가 부분 수열은 어떠한 수열에서 오름차순으로 증가하는 가장 긴 부분수열을 의미한다. 이 때, 부분 수열의 각 수는

4legs-study.tistory.com

 

코드


import sys
input = sys.stdin.readline

n = int(input())
rocks = list(map(int, input().split()))

dp = [1] * n

for i in range(n):
    temp = 0
    for j in range(i):
        if rocks[i] > rocks[j]:
            temp = max(temp, dp[j])
    dp[i] = temp+1

print(max(dp))

'Algorithm' 카테고리의 다른 글

[소프티어] GBC  (0) 2024.01.30
[소프티어] 장애물 인식 프로그램  (1) 2024.01.30
[소프티어] 성적 평균  (1) 2024.01.29
[소프티어] 바이러스  (0) 2024.01.29
[소프티어] 8단 변속기  (2) 2024.01.29

관련글 더보기