자바스크립트
home
2025 자바스크립트 초급 1500제
home

E0402_예제05_문제

예제

<script> /* [문제] 철수는 현재 게임을 플레이 중이며, 캐릭터는 동, 서, 남, 북 네 방향으로 이동할 수 있습니다. 시작 위치는 x = 5, y = 5입니다. 여기서 x는 좌우 방향(동서), y는 상하 방향(남북)을 의미합니다. [이동 규칙] 1부터 4까지의 랜덤 숫자를 s에 저장합니다. 이 숫자는 이동 방향을 나타냅니다. 값이 1이면 동쪽으로 이동하며, x 좌표가 증가합니다. 값이 2이면 서쪽으로 이동하며, x 좌표가 감소합니다. 값이 3이면 남쪽으로 이동하며, y 좌표가 감소합니다. 값이 4이면 북쪽으로 이동하며, y 좌표가 증가합니다. 1부터 10까지의 랜덤 숫자를 변수 r에 저장합니다. 이 숫자는 이동 거리를 나타냅니다. 위 규칙에 따라 총 5번 이동하며, 매 이동 후 철수의 위치(x, y), 이동 방향(s), 이동 거리(r)를 출력하시오. */ /* [출력예시] x=5 y=5 x=15 y=5 s=1 r=10 x=15 y=3 s=3 r=2 x=12 y=3 s=2 r=3 x=16 y=3 s=1 r=4 x=17 y=3 s=1 r=1 */ let x = 5; let y = 5; </script>
HTML
복사

정답

<script> /* [문제] 철수는 현재 게임을 플레이 중이며, 캐릭터는 동, 서, 남, 북 네 방향으로 이동할 수 있습니다. 시작 위치는 x = 5, y = 5입니다. 여기서 x는 좌우 방향(동서), y는 상하 방향(남북)을 의미합니다. [이동 규칙] 1부터 4까지의 랜덤 숫자를 s에 저장합니다. 이 숫자는 이동 방향을 나타냅니다. 값이 1이면 동쪽으로 이동하며, x 좌표가 증가합니다. 값이 2이면 서쪽으로 이동하며, x 좌표가 감소합니다. 값이 3이면 남쪽으로 이동하며, y 좌표가 감소합니다. 값이 4이면 북쪽으로 이동하며, y 좌표가 증가합니다. 1부터 10까지의 랜덤 숫자를 변수 r에 저장합니다. 이 숫자는 이동 거리를 나타냅니다. 위 규칙에 따라 총 5번 이동하며, 매 이동 후 철수의 위치(x, y), 이동 방향(s), 이동 거리(r)를 출력하시오. */ /* [출력예시] x=5 y=5 x=15 y=5 s=1 r=10 x=15 y=3 s=3 r=2 x=12 y=3 s=2 r=3 x=16 y=3 s=1 r=4 x=17 y=3 s=1 r=1 */ // [for문] let x = 5; let y = 5; document.write("x=", x, " y=", y, "<br>"); for(let i = 0; i < 5; i++) { let s = Math.floor(Math.random() * 4) + 1; let r = Math.floor(Math.random() * 10) + 1; if(s == 1) { x = x + r; } else if(s == 2) { x = x - r; } else if(s == 3) { y = y - r; } else if(s == 4) { y = y + r; } document.write("x=", x, " y=", y, " s=", s, " r=", r, "<br>"); } document.write("<br>"); // [while문] let x2 = 5; let y2 = 5; document.write("x=", x2, " y=", y2, "<br>"); let i = 0; while(i < 5) { let s = Math.floor(Math.random() * 4) + 1; let r = Math.floor(Math.random() * 10) + 1; if(s == 1) { x2 = x2 + r; } else if(s == 2) { x2 = x2 - r; } else if(s == 3) { y2 = y2 - r; } else if(s == 4) { y2 = y2 + r; } document.write("x=", x2, " y=", y2, " s=", s, " r=", r, "<br>"); i += 1; } </script>
HTML
복사