Search

이차배열5_문제14_달팽이

대분류
STEP08 이차배열
문제 난이도
LV09
소분류
이차배열5_문제

영상

문제

<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
복사