생각을 IT다
[JavaScript] 홀수 마방진 만들기 (연습) 본문
반응형
JavaScript 홀수 마방진 만드는 로직 입니다.
function square(input) { // input 값에 따라 x, y, start, end, 배열 생성
let x = 0; //x축
let y = Math.floor(input / 2); //y축
let square = []; //배열
let start = 1; //시작 값
let end = input * input; //마지막 값
for(let i=0; i < input; i++) { //배열 증가 마방진 그리기
square[i] = []; //i번째 배열 생성
for(let j=0; j < input; j++) { //i번째 배열마다 j 값 input 만큼 반복
square[i][j] = 0; //해당 위치의 값은 0
}
}
while(start <= end) { //마방진 채우기 start -> end
square[x][y] = start; //첫 시작 위치
start++; //값 증가
let newX = (x - 1 + input) % input; //열 위치
let newY = (y - 1 + input) % input; //행 위치
if(square[newX][newY] != 0) { //해당 좌표에 값이 있을 경우 이전 값 아래
x = (x + 1) % input; //열 위치
} else { //0일 때, new 값으로 변경
x = newX;
y = newY;
}
}
for(let i=0; i < input; i++) { //마방진 출력
console.log(square[i].join('\t')); //i번째 배열 하나의 문자열로 만들고 탭으로 나눠 출력
}
}
square(3);
웹 콘솔에서 즉시 확인 가능하도록 제작되었습니다.
JavaScript 연습용으로 제작한 것으로 추가적인 수정이 필요할 수도 있습니다.
반응형
'JS' 카테고리의 다른 글
[JavaScript] 별 찍기 연습 (0) | 2024.07.02 |
---|---|
[JavaScript / jQuery] 10초 간 3번 클릭 버튼 제어 연습 (0) | 2024.07.01 |
Comments