-
[Baekjoon] 1149번 RGB거리 (Java)Java/Baekjoon 2022. 8. 30. 02:14
예제 입력1
3 26 40 83 49 60 57 13 89 99
예제 출력1
96
예제 입력2
3 1 100 100 100 1 100 100 100 1
예제 출력2
3
예제 입력3
3 1 100 100 100 100 100 1 100 100
예제 출력3
102
예제 입력4
6 30 19 5 64 77 64 15 19 97 4 71 57 90 86 84 93 32 91
예제 출력4
208
예제 입력5
8 71 39 44 32 83 55 51 37 63 89 29 100 83 58 11 65 13 15 47 25 29 60 66 19
예제 출력5
253
package Q1149; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num = scan.nextInt(); int[][] arr = new int[num][3]; int[][] intArr = new int[num][3]; for(int i = 0; i < arr.length; i++) { for(int j = 0; j < arr[i].length; j++) { arr[i][j] = scan.nextInt(); } } for(int i = 0; i < arr.length; i++) { for(int j = 0; j < arr[i].length; j++) { if(i == 0) { intArr[i][j] = arr[i][j]; }else { if(j == 0) { // [i-1][1]과 [i-1][2] 중 작은 값과 나를 더함 intArr[i][j] = intArr[i-1][1] > intArr[i-1][2] ? arr[i][j]+intArr[i-1][2] : arr[i][j]+intArr[i-1][1]; }else if(j == 1) { // [i-1][0]과 [i-1][2] 중 작은 값과 나를 더함 intArr[i][j] = intArr[i-1][0] > intArr[i-1][2] ? arr[i][j]+intArr[i-1][2] : arr[i][j]+intArr[i-1][0]; }else if(j == 2) { // [i-1][0]과 [i-1][1] 중 작은 값과 나를 더함 intArr[i][j] = intArr[i-1][0] > intArr[i-1][1] ? arr[i][j]+intArr[i-1][1] : arr[i][j]+intArr[i-1][0]; } } } } int result = 0; for(int i = 0; i < 3; i++) { // 해당 경우의 값을 저장한 마지막줄에서 가장 작은 값을 출력 if(i == 0) {result = intArr[num-1][i]; } else if(result > intArr[num-1][i]){ result = intArr[num-1][i]; } } System.out.println(result); } }
정수 삼각형 문제와 아주 유사한 문제
모든 갈 수 있는 경우의 수를 다 더해서 가장 작은 값을 출력
728x90'Java > Baekjoon' 카테고리의 다른 글
[Baekjoon] 1676번 팩토리얼 0의 개수 (Java) (0) 2022.10.02 [Baekjoon] 11053번 가장 긴 증가하는 부분 수열 (Java) (0) 2022.08.31 [Baekjoon] 15657번 N과 M(8) (Java) (0) 2022.08.29 [Baekjoon] 16953번 A -> B (Java) (0) 2022.08.29 [Baekjoon] 1991번 트리 순회 (Java) (0) 2022.08.29