Search

이차배열5_문제10_체스비숍

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

영상

문제

<script> /* [문제] 세로 가로 인덱스 두 개를 랜덤으로 저장한다. 그 인덱스를 기점으로 대각선 방향으로 전부 1로 채운 후 출력하시오. [예시] y = 2 x = 1 [0,0,0,1,0] [1,0,1,0,0] [0,1,0,0,0] [1,0,1,0,0] [0,0,0,1,0] */ let list = [ [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> /* [문제] 세로 가로 인덱스 두 개를 랜덤으로 저장한다. 그 인덱스를 기점으로 대각선 방향으로 전부 1로 채운 후 출력하시오. [예시] y = 2 x = 1 [0,0,0,1,0] [1,0,1,0,0] [0,1,0,0,0] [1,0,1,0,0] [0,0,0,1,0] */ let list = [ [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 y = Math.floor(Math.random() * list.length); let x = Math.floor(Math.random() * list.length); list[y][x] = 1; y = 2; x = 1; document.write("y = " + y + "<br>"); document.write("x = " + x + "<br>"); let tempY = y; let tempX = x; // 위로 \ 채우기 while(true) { if(tempY - 1 >=0 && tempX - 1 >= 0) { list[tempY - 1][tempX - 1] = 1; tempY -= 1; tempX -= 1; } else { break; } } tempY = y; tempX = x; // 아래로 \ 채우기 while(true) { if(tempY + 1 < list.length && tempX + 1 < list.length) { list[tempY + 1][tempX + 1] = 1; tempY += 1; tempX += 1; } else { break; } } tempY = y; tempX = x; // 위로 / 채우기 while(true) { if(tempY - 1 >= 0 && tempX + 1 < list.length) { list[tempY - 1][tempX + 1] = 1; tempY -= 1; tempX += 1; } else { break; } } tempY = y; tempX = x; // 아래로 / 채우기 while(true) { if(tempY + 1 < list.length && tempX - 1 >= 0) { list[tempY + 1][tempX - 1] = 1; tempY += 1; tempX -= 1; } else { break; } } for(let i=0; i<list.length; i++) { document.write(list[i] + "<br>"); } </script>
Java
복사