Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 오름차순 정렬
- lv0
- 스프링부트 도커로 배포
- 버퍼
- 스택
- 알고리즘
- 백준
- index of
- StringTokenizer
- java
- lv2
- 프로그래머스 풀이
- Queue
- 큐
- Programmers
- 이진수 변환
- Lv1
- 백준 N과 M 자바
- 스프링부트 도커 배포
- 문자열
- COS Pro
- 클라이언트
- 자바
- 프로그래머스 문자열 정렬
- 스프링부트 도커
- Stack
- 프로그래머스
- 삼각형의 완성조건
- 프로그래머스 자바
- SWEA
Archives
- Today
- Total
mun dev
[백준] 1932 정수 삼각형 자바(Java) 본문
문제설명
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번째 줄까지 정수 삼각형이 주어진다.
출력
첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.
통과한 코드 ✅
import java.util.*;
import java.io.*;
public class Main {
static int[][] arr;
static Integer[][] dp;
static int n;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
n = Integer.parseInt(br.readLine());
arr=new int[n][n];
dp= new Integer[n][n];
for(int i=0; i<n; i++){
st=new StringTokenizer(br.readLine());
for(int j=0; j<i+1; j++){
arr[i][j]=Integer.parseInt(st.nextToken());
}
}
for(int i=0; i<n; i++){
dp[n-1][i]=arr[n-1][i];
}
System.out.println(find(0,0));
}
public static int find(int depth, int idx){
//맨 밑에 도달하면 해당 인덱스 반환
if(depth==n-1) return dp[depth][idx];
// 만약 아직 탐색하지 않았다면 다음 행의 양쪽 열 중 최대값 구함
if(dp[depth][idx]==null){
// 왼쪽, 오른쪽 대각선인 바로 다음행의 인덱스와 그 오른쪽의 인덱스 중
// 큰 값 찾아 dp에 현재 인덱스와 더하여 저장
dp[depth][idx]= Math.max(find(depth+1,idx),find(depth+1,idx+1))+arr[depth][idx];
}
return dp[depth][idx];
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2667 단지 번호 붙이기 자바(Java) (0) | 2023.08.24 |
---|---|
[백준] 11729 하노이 탑 이동 순서 (0) | 2023.08.21 |
[백준] 24444 알고리즘 수업 - 너비 우선 탐색 2 자바(Java) (0) | 2023.08.16 |
[백준] 1012 유기농 배추 자바(Java) (0) | 2023.08.16 |
[백준] 17626 Four Squares 자바(Java) (0) | 2023.08.16 |