영상
문제
<script>
/*
[문제]
철수는 게임을 만들고 있다.
game배열은 이차원으로 되어있다.
숫자8은 플레이어 위치를 뜻한다.
숫자0은 플레이어가 움직일 수 있는 위치이다.
order배열은 플레이어가 움직이게 하는 명령어이다.
1,2,3,4는 차례대로 북, 동, 남, 서를 뜻한다.
order의 이동대로 플레이어를 이동시키고 출력하시오.
플레이어가 벽에 붙어서,
더 이상 원하는 방향으로 이동할 수 없을 때는 "이동 불가"를 출력한다.
[정답]
캐릭터의 현재 위치 = 2 , 2
0 0 0 0 0
0 0 0 0 0
0 0 8 0 0
0 0 0 0 0
0 0 0 0 0
북
0 0 0 0 0
0 0 8 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 0 0
0 0 8 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 0 0
0 0 8 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 0 0
0 0 8 0 0
서
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 8 0 0 0
남
이동 불가
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 8 0 0 0
남
이동 불가
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 8 0 0 0
서
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
8 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 8 0 0 0
*/
let game = [
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,8,0,0],
[0,0,0,0,0],
[0,0,0,0,0]
];
let order = [1,3,3,3,4,3,3,4,2];
</script>
Java
복사
해설
<script>
/*
[문제]
철수는 게임을 만들고 있다.
game배열은 이차원으로 되어있다.
숫자8은 플레이어 위치를 뜻한다.
숫자0은 플레이어가 움직일 수 있는 위치이다.
order배열은 플레이어가 움직이게 하는 명령어이다.
1,2,3,4는 차례대로 북, 동, 남, 서를 뜻한다.
order의 이동대로 플레이어를 이동시키고 출력하시오.
플레이어가 벽에 붙어서,
더 이상 원하는 방향으로 이동할 수 없을 때는 "이동 불가"를 출력한다.
[정답]
캐릭터의 현재 위치 = 2 , 2
0 0 0 0 0
0 0 0 0 0
0 0 8 0 0
0 0 0 0 0
0 0 0 0 0
북
0 0 0 0 0
0 0 8 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 0 0
0 0 8 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 0 0
0 0 8 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 0 0
0 0 8 0 0
서
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 8 0 0 0
남
이동 불가
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 8 0 0 0
남
이동 불가
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 8 0 0 0
서
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
8 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 8 0 0 0
*/
let game = [
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,8,0,0],
[0,0,0,0,0],
[0,0,0,0,0]
];
let order = [1,3,3,3,4,3,3,4,2];
let player = 8;
let y = 0;
let x = 0;
for(let i=0; i<game.length; i++) {
for(let j=0; j<game[i].length; j++) {
if(game[i][j] == player) {
y = i;
x = j;
break;
}
}
}
document.write("현재위치 = " + y + ", " + x + "<br>");
for(let i=0; i<order.length; i++) {
for(let j=0; j<game.length; j++) {
document.write(game[j] + "<br>");
}
document.write("<br>");
let tempY = y;
let tempX = x;
if(order[i] == 1) {
document.write("북<br>");
tempY -= 1;
} else if(order[i] == 2) {
document.write("동<br>");
tempX += 1;
} else if(order[i] == 3) {
document.write("남<br>");
tempY += 1;
} else if(order[i] == 4) {
document.write("서<br>");
tempX -= 1;
}
if(4 < tempY || tempY < 0 || 4 < tempX || tempX < 0) {
document.write("이동 불가<br>");
continue;
}
game[y][x] = 0;
y = tempY;
x = tempX;
game[y][x] = player;
}
for(let j=0; j<game.length; j++) {
document.write(game[j] + "<br>");
}
document.write("<br>");
</script>
Java
복사