예제
<script>
/*
[문제]
철수와 민수는 계단 위에서 가위바위보 게임을 하고 있습니다.
두 사람은 50번째 계단에서 출발하며,
각각 1부터 3 사이의 랜덤 값을 선택합니다.
1은 가위, 2는 바위, 3은 보를 의미합니다.
게임의 규칙은 다음과 같습니다.
이기면 6칸 올라갑니다.
비기면 3칸 올라갑니다.
지면 2칸 내려갑니다.
게임은 다음 조건 중 하나라도 만족하면 종료됩니다.
철수 또는 민수가 100칸 이상 도달했을 때,
두 사람의 위치 차이가 10칸 이상 벌어졌을 때 입니다.
게임이 종료될 때까지의 철수와 민수의 이동 경로를 모두 출력하시오.
*/
/*
[출력예시]
50 50
2 3 48 56
2 2 51 59
1 3 57 57
3 1 55 63
1 3 61 61
1 2 59 67
1 2 57 73
[출력예시]
50 50
1 2 48 56
2 2 51 59
3 3 54 62
3 2 60 60
3 2 66 58
1 1 69 61
2 3 67 67
3 3 70 70
3 1 68 76
2 2 71 79
2 1 77 77
3 1 75 83
2 2 78 86
2 1 84 84
1 2 82 90
3 2 88 88
1 3 94 86
1 3 100 84
*/
</script>
HTML
복사
정답
<script>
/*
[문제]
철수와 민수는 계단 위에서 가위바위보 게임을 하고 있습니다.
두 사람은 50번째 계단에서 출발하며,
각각 1부터 3 사이의 랜덤 값을 선택합니다.
1은 가위, 2는 바위, 3은 보를 의미합니다.
게임의 규칙은 다음과 같습니다.
이기면 6칸 올라갑니다.
비기면 3칸 올라갑니다.
지면 2칸 내려갑니다.
게임은 다음 조건 중 하나라도 만족하면 종료됩니다.
철수 또는 민수가 100칸 이상 도달했을 때,
두 사람의 위치 차이가 10칸 이상 벌어졌을 때 입니다.
게임이 종료될 때까지의 철수와 민수의 이동 경로를 모두 출력하시오.
*/
/*
[출력예시]
50 50
2 3 48 56
2 2 51 59
1 3 57 57
3 1 55 63
1 3 61 61
1 2 59 67
1 2 57 73
[출력예시]
50 50
1 2 48 56
2 2 51 59
3 3 54 62
3 2 60 60
3 2 66 58
1 1 69 61
2 3 67 67
3 3 70 70
3 1 68 76
2 2 71 79
2 1 77 77
3 1 75 83
2 2 78 86
2 1 84 84
1 2 82 90
3 2 88 88
1 3 94 86
1 3 100 84
*/
let a = 50;
let b = 50;
document.write(a, " ", b, "<br>");
while(true) {
let r = Math.floor(Math.random() * 3) + 1;
let r2 = Math.floor(Math.random() * 3) + 1;
document.write(r, " ", r2, " ");
if(r == r2) {
a += 3;
b += 3;
} else if(r == 1 && r2 == 3) {
a += 6;
b -= 2;
} else if(r == 2 && r2 == 1) {
a += 6;
b -= 2;
} else if (r == 3 && r2 == 2) {
a += 6;
b -= 2;
} else {
b += 6;
a -= 2;
}
document.write(a, " ", b, "<br>");
if(a >= 100 || b >= 100) {
break;
}
c = a - b;
if(c <= -10 || c >= 10) {
break;
}
}
</script>
HTML
복사


