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

E1003_예제02_문제

예제

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