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

E0402_점검04_문제

점검

<script> /* [문제] 철수의 집 앞에는 100개의 계단이 있는 산이 있습니다. 현재 철수는 100번째 계단에 서 있습니다. 먼저, 1부터 8 사이의 랜덤 숫자를 하나 생성하여 이동 거리로 사용합니다. 이어서, 1부터 2 사이의 랜덤 숫자를 하나 생성하여 이동 방향을 정합니다. 방향이 1이면, 철수는 이동 거리만큼 위로(계단 상승) 이동합니다. 방향이 2이면, 철수는 이동 거리만큼 아래로(계단 하강) 이동합니다. 위 동작을 총 5번 반복한 뒤, 철수의 최종 위치를 출력하시오. 단, 계단 100 위로는 올라갈 수 없습니다. 즉, 98번째 계단에서는 위로로 4칸 이동 시 2칸만 이동합니다. 출력예시를 참고하여 출력하시오. */ /* [출력예시] 위치=100 방향=2 거리=4위치=96 방향=1 거리=6위치=100 방향=2 거리=8위치=92 방향=1 거리=3위치=95 방향=1 거리=1위치=96 */ let a = 0; </script>
HTML
복사

정답

<script> /* [문제] 철수의 집 앞에는 100개의 계단이 있는 산이 있습니다. 현재 철수는 100번째 계단에 서 있습니다. 먼저, 1부터 8 사이의 랜덤 숫자를 하나 생성하여 이동 거리로 사용합니다. 이어서, 1부터 2 사이의 랜덤 숫자를 하나 생성하여 이동 방향을 정합니다. 방향이 1이면, 철수는 이동 거리만큼 위로(계단 상승) 이동합니다. 방향이 2이면, 철수는 이동 거리만큼 아래로(계단 하강) 이동합니다. 위 동작을 총 5번 반복한 뒤, 철수의 최종 위치를 출력하시오. 단, 계단 100위로는 올라갈수없습니다. 즉, 98번째 계단에서는 위로로 4칸이동시 2칸만 이동합니다. 출력예시를 참고하여 출력하시오. */ /* [출력예시] 위치=100 방향=2 거리=4위치=96 방향=1 거리=6위치=100 방향=2 거리=8위치=92 방향=1 거리=3위치=95 방향=1 거리=1위치=96 */ // [for문] let a = 100; document.write("위치=", a, "<br>"); for(let i = 1; i <= 5; i++) { let r = Math.floor(Math.random() * 8) + 1; let s = Math.floor(Math.random() * 2) + 1; if(s == 1) { a = a + r; if(a > 100) { a = 100; } } else if(s == 2) { a = a - r; if(a < 0) { a = 0; } } document.write(" 방향=", s," 거리=", r, "위치=", a, "<br>"); } document.write("<br>"); // [while문] let a2 = 100; document.write("위치=", a2, "<br>"); let i = 1; while(i <= 5) { let r = Math.floor(Math.random() * 8) + 1; let s = Math.floor(Math.random() * 2) + 1; if(s == 1) { a2 = a2 + r; if(a2 > 100) { a2 = 100; } } else if(s == 2) { a2 = a2 - r; if(a2 < 0) { a2 = 0; } } document.write(" 방향=", s," 거리=", r, "위치=", a2, "<br>"); i += 1; } </script>
HTML
복사