본문 바로가기
프로그래밍 기초/Java Festival

[Java Festival] 14. 스네이크 배열 출력하기

by 제이투더문 2024. 6. 29.

 

 안녕하세요, 작가 J입니다. 이번에는 정수 N을 입력받아 N*N 배열에 스네이크 형태로 숫자를 저장하고 출력하는 프로그램을 작성해 보겠습니다. 이 예제는 2차원 배열을 다루는 방법과 반복문을 활용하여 배열에 값을 채우고 출력하는 방법을 익히는 데 도움이 될 것입니다.

 

[Java Festival 14] 스네이크 배열 출력하기

정수 N을 입력받아

N*N배열에 다음과 같이 숫자를 저장하고 출력하시오.

 

1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25

 

 

코드 풀이

스네이크 배열은 저희가 이차원 배열 시간에 풀어본 문제입니다. 그를 응용해서 풀이를 진행하시면 될 것 같습니다.

 

import java.util.Scanner;

public class Ex14 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        System.out.print("정수 N을 입력하세요: ");
        int N = sc.nextInt();
        
        int[][] array = new int[N][N];
        int number = 1;
        
        for (int row = 0; row < N; row++) {
            if (row % 2 == 0) {
                // 짝수 행: 왼쪽에서 오른쪽으로 숫자 채우기
                for (int col = 0; col < N; col++) {
                    array[row][col] = number++;
                }
            } else {
                // 홀수 행: 오른쪽에서 왼쪽으로 숫자 채우기
                for (int col = N - 1; col >= 0; col--) {
                    array[row][col] = number++;
                }
            }
        }
        
        // 배열 출력하기
        for (int row = 0; row < N; row++) {
            for (int col = 0; col < N; col++) {
                System.out.print(array[row][col] + "\t");
            }
            System.out.println();
        }
        
        sc.close();
    }
}


 코드 설명은 스네이크 배열 생성하는 부분만 짚고 넘어가겠습니다.

 

2차원 배열에 숫자를 스네이크 형태로 채웁니다.

  • for (int row = 0; row < N; row++): 행(row)을 순회하는 반복문입니다.
  • if (row % 2 == 0): 행의 인덱스가 짝수일 때
    • for (int col = 0; col < N; col++): 열(column)을 순회하며 왼쪽에서 오른쪽으로 숫자를 채웁니다.
  • else: 행의 인덱스가 홀수일 때
    • for (int col = N - 1; col >= 0; col--): 열(column)을 순회하며 오른쪽에서 왼쪽으로 숫자를 채웁니다.

 

마무리

 이번 예제에서는 정수 N을 입력받아 N * N 배열에 숫자를 스네이크 형태로 저장하고 출력하는 방법을 배웠습니다. 이를 통해 2차원 배열을 다루는 기초적인 방법과 반복문을 활용하여 배열에 값을 채우는 방법을 익힐 수 있었습니다.

 

 프로그래밍에서 2차원 배열을 효율적으로 다루는 능력은 매우 중요합니다. 특히 이번 예제처럼 간단한 문제를 해결하면서도 배열과 반복문의 사용법을 익히는 것은 실무에서도 유용하게 쓰일 수 있습니다. 다양한 문제를 풀어보며 실력을 키워나가길 바랍니다.

 

 프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 흥미롭고 유익한 내용을 준비하여 여러분의 학습을 돕겠습니다. 감사합니다!