[Python] 백준17070 파이프 옮기기 1

[Python] 백준17070 파이프 옮기기 1

백준17070 파이프 옮기기 1 링크

문제

문제

예제 입력

예제


코드

import sys

n = int(input())
arr = [[0 for _ in range(n)]] + [list(map(int, sys.stdin.readline().split())) for _ in range(n)]
dp = [[[0, 0, 0] for _ in range(n)] for _ in range(n+1)]
dp[1][1][0] = 1

# 0 -> 가로 / 1 -> 세로 / 2 -> 대각선
for i in range(1, n+1):
    for j in range(1, n):
        if i == j == 1:
            continue
        if arr[i][j] == 0:
            dp[i][j][0] = dp[i][j-1][0] + dp[i][j-1][2]
            dp[i][j][1] = dp[i-1][j][1] + dp[i-1][j][2]
            if arr[i-1][j] == arr[i][j-1] == 0:
                dp[i][j][2] = sum(dp[i-1][j-1])

print(sum(dp[-1][-1]))

설명

파이썬을 통해서 사용자로부터 입력받아 dp알고리즘을 사용하여 파이프 옮기기 1를 구현했습니다.


결과

결과


© 2022. All rights reserved. 신동민의 블로그