내일배움캠프 6기 React TIL

songhsb·2023년 5월 30일
0

내일배움캠프

목록 보기
18/106

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();
    }
  });
};
profile
개발공부!

0개의 댓글