Algorithm Study/Python

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

728x90
반응형

Silver I

# 1932 정수 삼각형

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

 

1932번: 정수 삼각형

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

www.acmicpc.net

 

풀이

T = int(input())
li = []

# 입력값 list 만들기 
for _ in range(T):
    nums = list(map(int, input().split()))
    li.append(nums)

# 마지막 인덱스로부터 최대값을 구해나가기
for i in reversed(range(T-1)):
    for j in range(len(li[i])):
        li[i][j] = li[i][j] + max(li[i+1][j], li[i+1][j+1])

print(li[0][0])

 

후기

  • 작은 문제로 쪼개서 답을 얻어가는 방식을 찾고, 이를 기반으로 큰 문제를 해결할 수 있도록 방법을 찾아야 한다.
  • reversed를 이용해 for문이 돌 때, 인덱스가 큰 수부터 진행될 수 있도록 한다.