Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 1531
  • 백준 7567
  • 백준 12871
  • 백준 10709
  • 백준 7662
  • 백준 3135
  • 백준 1064
  • 백준 6550
  • 백준 16926
  • 백준 8892
  • 백준
  • 백준 12605
  • 백준 24039
  • 백준 2467
  • 백준 16194
  • 백준 14582
  • 백준 3049
  • 백준 15655
  • 백준 4659
  • 백준 15961
  • 백준 1914
  • 백준 2591
  • 백준 15312
  • 백준 2225
  • 백준 1495
  • 백준 1011
  • 자바
  • 백준 1747
  • Java
  • 백준 2343
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 1932 정수 삼각형(Java)
백준

백준 1932 정수 삼각형(Java)

2023. 2. 14. 03:09

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

 

1932번: 정수 삼각형

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

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 위에서부터 다이내믹프로그래밍을 이용하면 되는 문제입니다. 점화식이 dp [i][j] = Max(dp[i-1][j] , dp[i-1][j-1] ) + arr [i][j] 이므로 먼저 arr배열에 값을 입력받은 후 dp배열의 값을 구하면 됩니다 그 후 dp [n]의 최댓값을 구하면 됩니다.

 


 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int max = -1;
    int n = sc.nextInt();
    int[][] arr = new int[n + 1][n + 1];
    int[][] dp = new int[n + 1][n + 1];
   
    for(int i = 1; i <= n; i++) {
      for(int j = 1; j <= i; j++) arr[i][j] = sc.nextInt();
    }

    for(int i = 1; i <= n; i++) {
      for(int j = 1; j <= i; j++) dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - 1]) + arr[i][j];
    }

    for(int i = 1; i <= n; i++) max = Math.max(max, dp[n][i]);

    System.out.println(max);
  }
}

'백준' 카테고리의 다른 글

백준 2156 포도주 시식(Java)  (0) 2023.02.14
백준 1697 숨바꼭질(Java)  (0) 2023.02.14
백준 1931 회의실배정(Java)  (0) 2023.02.14
백준 1149 RGB거리(Java)  (0) 2023.02.13
백준 2067 단지번호붙이기(Java)  (0) 2023.02.13
    '백준' 카테고리의 다른 글
    • 백준 2156 포도주 시식(Java)
    • 백준 1697 숨바꼭질(Java)
    • 백준 1931 회의실배정(Java)
    • 백준 1149 RGB거리(Java)
    Park DJ
    Park DJ

    티스토리툴바