공부/과제.

JAVA 문제풀이 08 나선형(달팽이) 배열

햄이; 2021. 4. 26. 15:26

 

 

Q1. 2차원배열 나선형 출력(달팽이)

 

package Day7;
/*
 * Q 16.
 * 달팽이
 * 힌트 1. 가로 2. 세로(4) 3. 역가로-(4) 4.역세로-(3) 5.가로(3) 6. 세로(3) 7.역가로-(2) 8 역세로-(1) 9가로(1) 
 * */
public class Question5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int arrSize = 5;
		int[][] arr = new int[arrSize][arrSize];

		int R = 0; // 행
		int C = -1; // 열
		int K = arrSize; // 반복횟수
		int SW = 1; // 증감
		int N = 1; // 값

		/* 달팽이 만들기 */
		while (true) {

			for (int i = 0; i < K; i++) { // 행고정 열변화
				C += SW;
				arr[R][C] = N++;
			}
			K--;
			if (K == 0)
				break;

			for (int j = 0; j < K; j++) { // 열고정 행변화
				R += SW;
				arr[R][C] = N++;
			}
			SW *= -1;

		}

		for (int i = 0; i < arrSize; i++) {
			for (int j = 0; j < arrSize; j++) {
				System.out.printf("%d\t", arr[i][j]);
			}
			System.out.println();
		}


	}

}

위 실행 결과

 

이 날 어이없는 행열 실수때문에

오류만 찾다가 다 못풀고

(행열이 그게 맞는줄알고 절대 오류 아니라고 생각함ㅎㅎ;;)

결국 선생님이 주신 코드 뜯어본 날^^

다른건 몰라도 달팽이 만큼은

절대 잊지 않겠다...🤬