티스토리 뷰

반응형

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

 

1932번: 정수 삼각형

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

www.acmicpc.net


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 다이나믹 프로그래밍

 


 

⊙ 문제 접근 과정

 

for문 2개를 사용하여 이중 list의 각각의 index를 만져줬다.

반복문 속의 조건문은 총 3가지로 나눴다.

가장 왼쪽에 있을 때, 가장 끝에 있을 때, 그리고 나머지.


 

⊙ 문제 풀이

 

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

for _ in range(N):
    T.append(list(map(int,input().split())))

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

print(max(T[N-1]))

⊙ 결과

 


⊙ 마무리

 

 

NONE

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함