주어진 값 n을 바탕으로 n × n 크기의 행렬에 체커보드(바둑판) 패턴을 출력하는 것이 이번 예제의 목표입니다.
NumPy는 파이썬에서 과학 연산을 위한 기본 패키지로, 초기값이 설정된 배열을 손쉽게 만들 수 있는 다양한 함수를 제공합니다. 특히 모든 요소를 0으로 채운 배열을 생성하는 zeros() 함수를 활용하면 체커보드 패턴을 아주 간단하게 구현할 수 있습니다.
알고리즘
1단계: 행렬의 차수(n)를 입력받는다.
2단계: zeros((n, n), dtype=int)를 사용해 n×n 행렬을 생성한다.
3단계: 슬라이싱(slicing) 기법으로 교차하는 행과 열에 1을 채운다.
4단계: 완성된 행렬을 출력한다.
핵심 포인트: 슬라이싱으로 패턴 만들기
체커보드 패턴은 0과 1이 격자 형태로 번갈아 배치된 구조입니다. NumPy의 슬라이싱 문법을 사용하면 복잡한 반복 처리 없이 두 줄의 코드만으로 패턴을 완성할 수 있습니다.
x[1::2, ::2] = 1→ 인덱스가 홀수인 행에서 짝수 위치의 열에 1을 채웁니다.x[::2, 1::2] = 1→ 인덱스가 짝수인 행에서 홀수 위치의 열에 1을 채웁니다.
이 두 연산이 적용되면 0과 1이 서로 엇갈려 배치되어 마치 바둑판처럼 보이는 체커보드 패턴이 자연스럽게 완성됩니다.
예제 코드
import numpy as np
def checkboardpattern(n):
print("Checkerboard pattern:")
x = np.zeros((n, n), dtype=int)
x[1::2, ::2] = 1
x[::2, 1::2] = 1
# 패턴 출력
for i in range(n):
for j in range(n):
print(x[i][j], end=" ")
print()
# 실행 코드
n = int(input("Enter value of n ::>"))
checkboardpattern(n)
실행 결과
Enter value of n ::>4
Checkerboard pattern:
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0