안녕하세요, 작가 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차원 배열을 효율적으로 다루는 능력은 매우 중요합니다. 특히 이번 예제처럼 간단한 문제를 해결하면서도 배열과 반복문의 사용법을 익히는 것은 실무에서도 유용하게 쓰일 수 있습니다. 다양한 문제를 풀어보며 실력을 키워나가길 바랍니다.
프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 흥미롭고 유익한 내용을 준비하여 여러분의 학습을 돕겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 16. 8자리 정수의 합 구하기 (0) | 2024.06.29 |
---|---|
[Java Festival] 15. 특정 수열의 n번째 항까지 출력하기 (0) | 2024.06.29 |
[Java Festival] 13. 학생 성적 정보 분석하기 (0) | 2024.06.26 |
[Java Festival] Bonus 02. 단어의 가운데 글자 구하기 (0) | 2024.06.26 |
[Java Festival] 12. N * N 배열에 숫자를 세로로 증가시키며 저장하고 출력하기 (0) | 2024.06.25 |