fork download
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.util.ArrayList;
  4. import java.util.StringTokenizer;
  5.  
  6. public class Main {
  7. // 백준 4883번 삼각 그래프
  8. public static void main(String[] args) throws Exception{
  9.  
  10. int k = Integer.parseInt(br.readLine());
  11. ArrayList<String> list = new ArrayList<String>();
  12. if(k==0) return;
  13. int[][] arr = new int[k][3];
  14. int[][] dp = new int[k][3];
  15. StringTokenizer st = null;
  16. int index = 0;
  17. int number = 1;
  18. boolean flag = true;
  19. while(flag) {
  20. st = new StringTokenizer(br.readLine(), " ");
  21. int q = 0; // index
  22. while(st.hasMoreTokens()) {
  23. int data = Integer.parseInt(st.nextToken());
  24. arr[index][q] = data;
  25. dp[index][q] = data;
  26. q++;
  27. }
  28. index++;
  29. if(index == k) {
  30. index = 0;
  31. dp[0][2] += arr[0][1];
  32. dp[1][0] += dp[0][1];
  33. dp[1][1] += min(dp[1][0], dp[0][1], dp[0][2]);
  34. dp[1][2] += min(dp[1][1], dp[0][1], dp[0][2]);
  35. for(int i=2;i<arr.length;i++) {
  36. for(int t=0;t<3;t++) {
  37. if(t == 0)
  38. dp[i][t] += min(dp[i-1][0], dp[i-1][1]);
  39. if(t == 1)
  40. dp[i][t] += min(min(dp[i][0], dp[i-1][0]), min(dp[i-1][1], dp[i-1][2]));
  41. if(t == 2)
  42. dp[i][t] += min(dp[i][1], dp[i-1][1], dp[i-1][2]);
  43. }
  44. }
  45. list.add(number+". " + dp[k-1][1]);
  46. k = Integer.parseInt(br.readLine());
  47. arr = new int[k][3];
  48. if(k == 0) {
  49. flag = false;
  50. }else {
  51. number++;
  52. }
  53. }
  54. }
  55. for(int i=0;i<list.size();i++) {
  56. System.out.println(list.get(i));
  57. }
  58. }
  59.  
  60. public static int min(int a, int b) {
  61. return a > b ? b : a;
  62. }
  63.  
  64. public static int min(int a, int b, int c) {
  65. if(a<b) {
  66. if(a<c) return a;
  67. else return c;
  68. }else if(b<c){
  69. return b;
  70. }else {
  71. return c;
  72. }
  73. }
  74. }
  75.  
Runtime error #stdin #stdout #stderr 0.11s 36208KB
stdin
2
1 1 1
1 1 1
3
1 1 1
1 1 1
1 1 1
0
stdout
Standard output is empty
stderr
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2
	at Main.main(Main.java:26)