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

E0402_예제04_문제

예제

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

정답

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