백준 / 1932번 / 정수 삼각형 / python 파이썬

2025. 4. 4. 17:13·코딩테스트/백준 (python)

 

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

(이전에 풀었던 문제 복습)

 

 

 

        7
      3   8
    8   1   0
  2   7   4   4
4   5   2   6   5

위 그림은 크기가 5인 정수 삼각형의 한 모습이다.

맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또는 대각선 오른쪽에 있는 것 중에서만 선택할 수 있다.

삼각형의 크기는 1 이상 500 이하이다. 삼각형을 이루고 있는 각 수는 모두 정수이며, 범위는 0 이상 9999 이하이다.

입력

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

출력

첫째 줄에 합이 최대가 되는 경로에 있는 수의 합을 출력한다.

예제 입력 1 

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

예제 출력 1

30

 

나의 풀이

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

DP = [[0] * (i + 1) for i in range(n)]
DP[0][0] = triangle[0][0]

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

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

 

왼쪽 끝 → DP[i][0] = DP[i-1][0] + triangle[i][0] : 이전 층의 같은 위치에서 내려오는 경우만 존재

오른쪽 끝 → DP[i][i] = DP[i-1][i-1] + triangle[i][i] : 이전 층의 마지막 위치에서 오는 경우만 존재

중간 값 →   DP[i][j] = max(DP[i-1][j-1], DP[i-1][j]) + triangle[i][j] : 두 값 중 더 큰 값을 선택

 

 

 

 

'코딩테스트 > 백준 (python)' 카테고리의 다른 글

백준 / 1654번 / 랜선 자르기 / python 파이썬  (0) 2025.04.14
백준 / 1655번 / 가운데를 말해요 / python 파이썬  (0) 2025.04.11
백준 / 18870번 / 좌표 압축 / python 파이썬  (0) 2025.03.19
백준 / 2493번 / 탑 / python 파이썬  (0) 2025.03.13
백준 / 1238번 / 파티 / python 파이썬  (0) 2025.03.07
'코딩테스트/백준 (python)' 카테고리의 다른 글
  • 백준 / 1654번 / 랜선 자르기 / python 파이썬
  • 백준 / 1655번 / 가운데를 말해요 / python 파이썬
  • 백준 / 18870번 / 좌표 압축 / python 파이썬
  • 백준 / 2493번 / 탑 / python 파이썬
seulll
seulll
개인 공부 / 정리 블로그입니다 https://github.com/seul1009
  • seulll
    seulll
    seulll
  • 전체
    오늘
    어제
    • 분류 전체보기 (345) N
      • 코딩테스트 (237) N
        • programmers (python) (158)
        • 백준 (python) (77) N
      • 자료구조 | 알고리즘 (14)
      • 개발 | 프로젝트 (43)
        • Python (4)
        • Java | Spring (7)
        • Android (5)
        • Unity (3)
        • API (4)
      • CS (15)
        • Network (5)
        • SQL (2)
        • OS (4)
      • 데이터 분석 (14)
      • 기타 (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 설정
  • 링크

    • GitHub
  • 인기 글

  • 태그

    train_test_split
    데이터분석
    웹크롤링
    모델 성능 평가
    confusion matrix
    그리디 알고리즘
    카카오맵
    Boxplot
    대입 표현식
    2 x n 타일링
    프로그래머스
    야근 지수
    티스토리챌린지
    박스플롯
    파이썬
    코딩테스트
    백엔드
    Python
    kakao map api
    asterisk
    프렌즈4블록
    Greedy
    오차행렬
    오블완
    백엔드 개발자 역량
    바다코끼리
    백엔드 개발자
    카카오맵 api
    solving environment
    API
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
seulll
백준 / 1932번 / 정수 삼각형 / python 파이썬
상단으로

티스토리툴바