fork(3) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. static int[][] convertToDiagonal(int[][] input) {
  11.  
  12. int[][] output = new int[input.length][input.length];
  13. int i = 0, j = 0;
  14.  
  15. int n = input.length;
  16. for (int slice = 0; slice < 2 * n - 1; slice++) {
  17. int z = slice < n ? 0 : slice - n + 1;
  18. for (int k = z; k <= slice - z; ++k) {
  19. output[i][j++] = input[k][slice - k];
  20. }
  21. if(j == n) {
  22. j = 0;
  23. i++;
  24. }
  25. }
  26. return output;
  27. }
  28.  
  29. static void print(int[][] data) {
  30. for(int i = 0; i < data.length; i++) {
  31. System.out.print("| ");
  32. for(int j = 0; j < data[0].length; j++) {
  33. System.out.print(data[i][j] + " ");
  34. }
  35. System.out.println("|");
  36. }
  37. System.out.println();
  38. }
  39.  
  40. static void test() {
  41. int[][] data = new int[3][3];
  42. data[0] = new int[] { 1, 2, 3 };
  43. data[1] = new int[] { 4, 5, 6 };
  44. data[2] = new int[] { 7, 8, 9 };
  45.  
  46. System.out.println("Input:");
  47. print(data);
  48.  
  49. data = convertToDiagonal(data);
  50.  
  51. System.out.println("Output:");
  52. print(data);
  53. }
  54.  
  55. public static void main(String[] args) {
  56. test();
  57. }
  58. }
Success #stdin #stdout 0.08s 380224KB
stdin
Standard input is empty
stdout
Input:
| 1 2 3 |
| 4 5 6 |
| 7 8 9 |

Output:
| 1 2 4 |
| 3 5 7 |
| 6 8 9 |