-
[백준] 1932번 문제 (정수 삼각형) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 10. 4. 17:49
https://www.acmicpc.net/problem/1932
t = int(input()) nums = [list(map(int, input().split())) for _ in range(t)] dp = [] for n in nums: dp.append([0] * len(n)) dp[0][0] = nums[0][0] for i in range(1, t): for j in range(len(nums[i])): if j == 0: dp[i][j] = max(dp[i][j], nums[i][j] + dp[i - 1][j]) elif j == len(nums[i]) - 1: dp[i][j] = max(dp[i][j], nums[i][j] + dp[i - 1][j - 1]) else: dp[i][j] = max(dp[i][j], nums[i][j] + dp[i - 1][j], nums[i][j] + dp[i - 1][j - 1]) print(max(dp[t - 1]))
dp 문제이다.
삼각형의 꼭대기부터 아래로 내려오며, 최대값을 반복적으로 구하며 저장한다.
그리고 삼각형의 마지막 줄 dp[t - 1] 중에 제일 큰 값을 출력한다.
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 14888번 문제 (연산자 끼워넣기) 파이썬(Python) 풀이 (0) 2021.10.14 [백준] 1753번 문제 (최단경로) 파이썬(Python) 풀이 (0) 2021.10.12 [백준] 2210번 문제 (숫자판 점프) 파이썬(Python) 풀이 (0) 2021.09.23 [백준] 10988번 문제 (팰린드롬인지 확인하기) 파이썬(Python) 풀이 (0) 2021.09.23 [백준] 17608번 문제 (막대기) 파이썬(Python) 풀이 (0) 2021.09.15