Development/Algorithm

[백준] 2096번: 내려가기 (python)

jstar0525 2021. 5. 5. 22:28
반응형

www.acmicpc.net/problem/2096

 

2096번: 내려가기

첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다.

www.acmicpc.net

import sys

def use_dp(fun, dp):

    x1 = board_r[0] + fun(dp[:2])
    x2 = board_r[1] + fun(dp)
    x3 = board_r[2] + fun(dp[1:])

    return [x1, x2, x3]

if __name__ == '__main__':
    
    N = int(sys.stdin.readline())

    max_dp = [0]*3
    min_dp = [0]*3

    for r in range(N):

        board_r = list(map(int, sys.stdin.readline().split()))

        max_dp = use_dp(fun=max, dp=max_dp)
        min_dp = use_dp(fun=min, dp=min_dp)

    print(max(max_dp), min(min_dp))

문제에 메모리 제한이 있어,

min과 max에 대해 1x3 리스트를 활용하여 문제를 풀었습니다.

반응형