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


