영상
문제
<script>
/*
[문제]
arr 배열에 아래와같이 저장 후 출력하시오.
[정답]
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
*/
let arr = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]
];
</script>
Java
복사
해설
<script>
/*
[문제]
arr 배열에 아래와같이 저장 후 출력하시오.
[정답]
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
*/
let arr = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]
];
let num = 1;
let y = 0;
let x = 0;
let dir = 0; // 동(0), 남(1), 서(2), 북(3)
arr[y][x] = num;
num += 1;
while(true) {
let tempY = y;
let tempX = x;
if(dir == 0) {
tempX += 1;
} else if(dir == 1) {
tempY += 1;
} else if(dir == 2) {
tempX -= 1;
} else if(dir == 3) {
tempY -= 1;
}
if((5 <= tempY || tempY < 0) || (5 <= tempX || tempX < 0)) {
dir += 1;
if(dir == 4) {
dir = 0;
}
} else if(arr[tempY][tempX] != 0) {
dir += 1;
if(dir == 4) {
dir = 0;
}
} else {
y = tempY;
x = tempX;
arr[y][x] = num;
num += 1;
}
if(num == 26) {
break;
}
}
for(let i=0; i<5; i++) {
document.write(arr[i] + "<br>");
}
</script>
Java
복사