코딩 05. 'ㄹ'모양 배열 만들기
정보처리기사 준비할 때 알고리즘공부하면서 봤던건데, 1년이 지나니 완전 까먹어버렸다..ㅠㅅ ㅠ
기본적인거라 다시 공부!! 달팽이모양 배열도 도전해야징
🎈 'ㄹ'모양 배열 만들기
int count = 5; int[][] arr = new int[count][count]; int num = 1; int col = 0; // 열 인덱스 int x = 1; // + or - for (int row = 0; row < count; row++) { for (int i = 0; i < count; i++) { arr[row][col] = num++; col = (i != count - 1) ? col+x : col; } x = -x; } // 출력하는 부분 for (int i = 0; i < count; i++) { for (j = 0; j < count; j++) { System.out.printf("%3d", arr[i][j]); } System.out.println(); }
열의 인덱스가 계속 플러스되는 것이 아니라, 행에 따라 +/-되는 점을 고려해야 합니다. 여기서 포인트는 변수 x인데, +/-를 위해 한 행이 끝날때마다 -1을 곱해주는 거에요.
변수 x를 열 인덱스 j에 더해주는데, 그러다보면 j가 count보다 커져서 OutOfIndex 에러가 납니다. 따라서 저는 이중 for문의 z가 마지막 차례일 경우에는 더해주지 않도록 조건문을 넣어 풀었습니다.
검색해보니 더 좋은 코드가 있는 것 같아 추가 :-)
int count = 5; int[][] array = new int[count][count]; int number = 1; int direction = 1; int col = -1; for (int row = 0; row < count; row++) { for (int j = 0; j < count; j++) { col += direction; array[row][col] = number++; } col += direction; direction *= -1; } // 출력하는 부분 for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { System.out.printf("%3d", array[i][j]); } System.out.println(); }
[코드 출처는 이곳입니당. 제가 조금 변경했어요!]
[이미지 출처는 이곳입니당ㅎ-ㅎ]
Author And Source
이 문제에 관하여(코딩 05. 'ㄹ'모양 배열 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yuriyaam/코딩-05.-ㄹ모양-배열-만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)