Just Fighting

[프로그래머스] 정수 삼각형 본문

Algorithm/코딩테스트 연습

[프로그래머스] 정수 삼각형

yennle 2022. 3. 8. 12:48
728x90

https://programmers.co.kr/learn/courses/30/lessons/43105

 

코딩테스트 연습 - 정수 삼각형

[[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30

programmers.co.kr

 

 

< 문제 설명 >

위에서 부터 차례대로 합해 가장 큰 합를 리턴한다.

이때, 두 방향으로밖에 못내려감. 7 -> 3, 8      3 -> 8, 1

 

 

< 문제 이해 >

내려가면서 더하고, 더한 값이 원래 값보다 작으면 원래 값을 사용하는 dp 문제!

 

 

< 문제 풀이 >

def solution(triangle):
    dp = [[0]*i for i in range(1,len(triangle)+1)]	# dp배열 미리 만들어 놓음
    dp[0][0] = triangle[0][0]				# 맨 꼭대기
    
    for i in range(0, len(triangle)-1):
        for j in range(i+1):
            dp[i+1][j] = max(dp[i][j] + triangle[i+1][j], dp[i+1][j])
            dp[i+1][j+1] = max(dp[i][j] + triangle[i+1][j+1], dp[i+1][j+1])
    
    return max(dp[len(triangle)-1])

728x90
Comments