본문 바로가기

백준 문제 풀이 및 피드백

23.01.29 정수삼각형 백준 [파이썬]

https://www.acmicpc.net/problem/1932

 

1932번: 정수 삼각형

첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.

www.acmicpc.net

 

import sys
input = sys.stdin.readline

def main():
    n = int(input().strip())
    board = [list(map(int,input().split())) for _ in range(n)]


    for i in range(n):
        if i == 0:
            continue
        for j in range(i+1):
            if j == 0:
                board[i][0] += board[i-1][0]
                continue
            if j == i:
                board[i][j] += board[i-1][j-1]
                continue
            board[i][j] += board[i-1][j] if board[i-1][j] > board[i-1][j-1] else board[i-1][j-1]

    print(max(board[n-1]))
    # 1일때 예외 생각
main()

 

위에서부터 해서 더 큰거를 가지고 내려왔다. 처음부분과 끝 부분은 예외처리를 해주고 나머지는 더 큰 수를 가지고 내려가면서 진행했다.