백준 1932번(파이썬):정수 삼각형

백준 1932번 문제 정리글 입니다.

문제 출처-https://www.acmicpc.net/problem/1932

문제 내용

백준 1932번

나의 풀이

    n=int(input())
    tri=[list(map(int,input().split())) for _ in range(n)]

    for i in range(1,n):
        for j in range(i+1):
            if j==0:
                tri[i][j]+=tri[i-1][j]
            elif j==i:
                tri[i][j]+=tri[i-1][j-1]
            else:
                tri[i][j]+=max(tri[i-1][j-1],tri[i-1][j])

    print(max(tri[n-1]))

한줄씩 그 전줄에서 나올 수 있는 경우 중 큰 값과 더하면서 그 줄에서의 최대값을 구하는 방식으로 구현했다.

처음에는 dp라는 배열을 만들어서 집어넣으면서 계산하니 80~90%에서 틀렸습니다가 나왔다. 그래서 그냥 각 줄에서의 최대값을 계산하도록하니 해결되었다.