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

E1003_점검02_문제

점검

<script> /* [문제] 다음은 랜덤 업다운 게임을 구현하는 코드입니다. 컴퓨터(com)는 1부터 100 사이의 랜덤 숫자를 하나 저장하고, 사용자(me)는 그 숫자를 맞출 때까지 계속 랜덤으로 숫자를 뽑습니다. 그러나 현재 코드는 me가 이미 틀린 범위의 숫자도 계속 뽑는 문제가 있습니다. 이를 해결하도록 프로그램을 수정하시오. 예를 들어, com = 50 이고 me = 30 을 뽑았다면 이후에는 1부터 30 범위의 숫자는 다시 뽑지 않도록 해야합니다. 반대로 com = 50 이고 me = 80 을 뽑았다면 이후에는 80부터 100 범위의 숫자는 뽑지 않도록 해야합니다. 즉, 매 턴마다 이전의 추측 결과에 따라 선택 가능한 숫자 범위를 조정하면서 me가 com의 숫자를 정확히 맞출 때까지 반복하도록 프로그램을 완성하시오. */ /* [출력예시] com = 78 me = 68 작다 me = 86 크다 me = 82 크다 me = 71 작다 me = 78 같다 */ let com = Math.floor(Math.random() * 100) + 1; document.write("com = ", com, "<br><br>"); while(true) { let me = Math.floor(Math.random() * 100) + 1; document.write("me = ", me, "<br>"); if(com < me) { document.write("크다<br>"); } else if(com > me) { document.write("작다<br>"); } else { document.write("같다<br>"); break; } } </script>
HTML
복사

정답

<script> /* [문제] 다음은 랜덤 업다운 게임을 구현하는 코드입니다. 컴퓨터(com)는 1부터 100 사이의 랜덤 숫자를 하나 저장하고, 사용자(me)는 그 숫자를 맞출 때까지 계속 랜덤으로 숫자를 뽑습니다. 그러나 현재 코드는 me가 이미 틀린 범위의 숫자도 계속 뽑는 문제가 있습니다. 이를 해결하도록 프로그램을 수정하시오. 예를 들어, com = 50 이고 me = 30 을 뽑았다면 이후에는 1부터 30 범위의 숫자는 다시 뽑지 않도록 해야합니다. 반대로 com = 50 이고 me = 80 을 뽑았다면 이후에는 80부터 100 범위의 숫자는 뽑지 않도록 해야합니다. 즉, 매 턴마다 이전의 추측 결과에 따라 선택 가능한 숫자 범위를 조정하면서 me가 com의 숫자를 정확히 맞출 때까지 반복하도록 프로그램을 완성하시오. */ /* [출력예시] com = 78 me = 68 작다 me = 86 크다 me = 82 크다 me = 71 작다 me = 78 같다 */ let com = Math.floor(Math.random() * 100) + 1; document.write("com = ", com, "<br><br>"); let begin = 1; let end = 100; let plus = 1; let i = 1; while(true) { let me = Math.floor(Math.random() * (end - begin + 1)) + plus; document.write("me = ", me, "<br>"); if(com < me) { end = me - 1; document.write("크다<br>"); } else if(com > me) { begin = me + 1; plus = me + 1; document.write("작다<br>"); } else { document.write("같다<br>"); break; } i += 1; } </script>
HTML
복사