자바 초보 2차원배열 질문좀합니다
3 1 5 2 4
5 0 0 0 0
4 0 0 0 0
1 0 0 0 0
2 0 0 0 0 이럴때 두번째행은 5 2 4 3 1
세번째행은 4 3 1 5 2
네번째행은 1 5 2 4 3
다섯번째행은 2 4 3 1 5
이런식으로 값을 첫번째행에서 당겨오고싶은데 어떻게 해야할까요?
55글자 더 채워주세요.
1개의 답변이 있어요!
- public static void main(String[] args) { int[][] data = { {3,1,5,2,4}, {5,0,0,0,0}, {4,0,0,0,0}, {1,0,0,0,0}, {2,0,0,0,0} }; System.out.println("========="); for(int i=0; i<data.length; i++) { for(int j=0; j<data[i].length; j++) { System.out.print(data[i][j]); if(data[i].length != j+1) System.out.print(","); } System.out.println(""); } System.out.println("========="); for(int i=0; i<data.length; i++) { if(i > 0) { int[] target = data[0]; int find = data[i][0]; int loop = data[i].length; boolean pass = false; int k = 0; while(true) { if(target.length == k) { k = 0; } if(!pass && find == target[k]) { pass = true; } if(pass) { //System.out.println(target[k]); data[i][data[i].length-loop] = target[k]; loop--; } k++; if(loop == 0) break; } } } System.out.println("========="); for(int i=0; i<data.length; i++) { for(int j=0; j<data[i].length; j++) { System.out.print(data[i][j]); if(data[i].length != j+1) System.out.print(","); } System.out.println(""); } System.out.println("========="); }
두번째행 첫번째열의 값이 첫번째행에 무조건 있다는 전제하에 작성한 코드입니다.
또한, 두번째 행부터는 열길이에 상관없이 첫번째행의 값들을 연속적으로 가져옵니다.