예제
<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
복사


