2023.05.30
오늘의 특강인 알고리즘 있었다. 첫 알고리즘 수업인 만큼 이해가 안 되는 부분도 많았지만 이해하도록 노력해보자!
// 사용자 입력을 받기 위해 readline 패키지 사용!
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let answer = Math.floor(Math.random() * 100) + 1;
let count = 0;
console.log(
"1~100 중 랜덤 숫자 하나를 정하였습니다. 과연 당신이 맞출 수 있을까요?!"
);
function askQuestion() {
rl.question("숫자 입력: ", (guess) => {
count++;
if (parseInt(guess) > answer) {
console.log("DOWN"); // 사용자가 입력한 값보다 랜덤 숫자가 작으면 DOWN 출력!
askQuestion();
} else if (parseInt(guess) < answer) {
console.log("UP"); // 사용자가 입력한 값보다 랜덤 숫자가 크면 UP 출력!
askQuestion();
} else if (parseInt(guess) === answer) {
// 사용자가 입력한 값과 랜덤 숫자가 같으면 CORRECT 출력 후 종료
console.log("CORRECT");
console.log("숫자 입력한 횟수: " + count + "번");
rl.close();
}
});
};
askQuestion();
수업에서 들었었던 랜덤숫자 맞추기 알고리즘이다. 강의에서는 잘 이해하지 못한 만큼 다시 살펴보자!
랜덤 숫자 할당할 변수 answer선언
숫자를 입력한 횟수를 저장할 변수 count선언
let answer = Math.floor(Math.random() * 100) + 1;
let count = 0;
숫자를 입력하면 먼저 count를 증가!
추측이 틀리면 힌트를 주고 다시 함수안으로.
정답일 경우에는 "CORRECT" 출력과 변수 count의 값을 보여주며 종료한다.
function askQuestion() {
rl.question("숫자 입력: ", (guess) => {
count++;
if (parseInt(guess) > answer) {
console.log("DOWN"); // 사용자가 입력한 값보다 랜덤 숫자가 작으면 DOWN 출력!
askQuestion();
} else if (parseInt(guess) < answer) {
console.log("UP"); // 사용자가 입력한 값보다 랜덤 숫자가 크면 UP 출력!
askQuestion();
} else if (parseInt(guess) === answer) {
// 사용자가 입력한 값과 랜덤 숫자가 같으면 CORRECT 출력 후 종료
console.log("CORRECT");
console.log("숫자 입력한 횟수: " + count + "번");
rl.close();
}
});
};