알고리즘 공부/CodeUp

1506 : 2차원 배열 채우기 4(역달팽이 배열)

콩이아부지이 2021. 9. 18. 18:19
728x90

평소 호기심이 많은 남호는 정보고 사이트에 있는 달팽이 배열 문제를 다르게 만들고 싶었다.

입력 예시와 출력 예시를 참고 하여 n을 입력 받아 출력하는 프로그램을 작성하시오.

입력

배열의 크기 n이 입력된다. (n은 15보다 작은 홀수)

출력

역 달팽이 배열을 출력한다.

입력 예시   예시 복사

5

출력 예시

1 16 15 14 13

2 17 24 23 12

3 18 25 22 11

4 19 20 21 10

5 6 7 8 9

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int[][] b = new int[51][51];
		int i=-1,j=0,c=1,t=1,d=a;
		
		for (int k = 0; k < d; k++) {
			for (int k2 = 0; k2 < a; k2++) {
				i+=t;
				b[i][j]=c++;
			}
			a--;
			for (int k2 = 0; k2 < a; k2++) {
				j+=t;
				b[i][j]=c++;
			}
			t*=-1;
		}
		
		for (int l = 0; l < d; l++) {
			for (int k = 0; k < d; k++) {
				System.out.print(b[l][k]+" ");
			}
			System.out.println();
		}
	}
}

출처 : https://codeup.kr/problem.php?id=1506 

 

2차원 배열 채우기 4(역달팽이 배열)

평소 호기심이 많은 남호는 정보고 사이트에 있는 달팽이 배열 문제를 다르게 만들고 싶었다. 입력 예시와 출력 예시를 참고 하여 n을 입력 받아 출력하는 프로그램을 작성하시오.

codeup.kr

 

728x90