Skip to content

Commit

Permalink
72.py
Browse files Browse the repository at this point in the history
  • Loading branch information
huisuu committed Aug 31, 2024
1 parent e6cdf8c commit 719097e
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions HSKIM/71to80/72.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
def solution(arr):
n = len(arr[0]) # 배열의 열 개수
dp = [[0] * n for _ in range(4)] # 4가지 패턴을 위한 DP 테이블 초기화

# 첫 번째 열에서 각 패턴의 초기화
dp[0][0] = arr[0][0] # 패턴 0: 상단
dp[1][0] = arr[1][0] # 패턴 1: 중앙
dp[2][0] = arr[2][0] # 패턴 2: 하단
dp[3][0] = arr[0][0] + arr[2][0] # 패턴 3: 상단과 하단

# 두 번째 열부터 마지막 열까지 계산
for i in range(1, n):
# 패턴 0이 선택된 경우 (상단)
dp[0][i] = arr[0][i] + max(dp[1][i - 1], dp[2][i - 1])

# 패턴 1이 선택된 경우 (중앙)
dp[1][i] = arr[1][i] + max(dp[0][i - 1], dp[2][i - 1], dp[3][i - 1])

# 패턴 2가 선택된 경우 (하단)
dp[2][i] = arr[2][i] + max(dp[0][i - 1], dp[1][i - 1])

# 패턴 3이 선택된 경우 (상단과 하단)
dp[3][i] = arr[0][i] + arr[2][i] + dp[1][i - 1]

# 마지막 열에서 최대 가중치 반환
return max(dp[0][-1], dp[1][-1], dp[2][-1], dp[3][-1])

print(solution([[1, 7, 13, 2, 6], [2, -4, 2, 5, 4], [5, 3, 5, -3, 1]]))

0 comments on commit 719097e

Please sign in to comment.