728x90

# 출처 : https://www.acmicpc.net/problem/1932

 

1932번: 정수 삼각형

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

www.acmicpc.net


# 풀이

 


# 코드

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

for i in range(1, n): #두번째 행부터 끝까지
    for j in range(len(arr[i])): #해당 행의 열의 갯수만큼
        if j==0: arr[i][j]+=arr[i-1][j]; continue #첫번째 열은 이전 행의 첫번째 열밖에 대각선으로 이어져있으므로
        if j==len(arr[i])-1: arr[i][j]+=arr[i-1][j-1]; continue #마지막 열은 이전 행의 마지막 열밖에 대각선으로 이어져있으므로
        arr[i][j]+=max(arr[i-1][j-1], arr[i-1][j]) #중간 열은 이전 행의 대각선에 해당하는 값들 중 최대값을 선택

print(max(arr[n-1])) #마지막 행 중에서 가장 큰 값을 선택하여 출력
728x90

'algorithm > baekjoon' 카테고리의 다른 글

[BOJ] 10844 쉬운 계단 수 (python)  (0) 2021.09.29
[BOJ] 2156 포도주 시식 (python)  (0) 2021.09.29
[BOJ] 1149 RGB거리 (python)  (0) 2021.09.29
[BOJ] 1697 숨바꼭질 (python)  (0) 2021.09.29
[BOJ] 7576 토마토 (python)  (0) 2021.09.29

+ Recent posts