Koala - 15기/코딩테스트 준비 스터디

[백준/python] 1932: 정수 삼각

ㄱㅈㅅㅇ 2024. 7. 12. 15:19

1932번: 정수 삼각형 (acmicpc.net)

n = int(input())
li= [list(map(int, input().split())) for _ in range(n)]
    
for i in range(1,n):
    for a in range(len(li[i])):
        if a == 0:
            li[i][a]+=li[i-1][a]
        elif a == i:
            li[i][a]+=li[i-1][a-1]
        else:
            li[i][a]+=max(li[i-1][a], li[i-1][a-1])

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

처음칸은 안 변하니 다음 칸부터 본다. li에 더한 값을 저장할 것이다. 해당 열을 모두 보는데 첫 번쨰 값은 그냥 전 행 0번쨰 값을 더하고 저장. 끝 값들은 전행의 끝 값 더하고 끝 (선택지가 그거밖에 없음)

근데 다른 애들은 대각선 양옆중에 더 큰 애를 더해서 저장.

맨 바닥까지 와서 가장 큰 값 출력