[TIL 23.05.31]알고리즘 문제풀이

김의진·2023년 5월 30일
0

TIL/WIL

목록 보기
7/44
post-thumbnail

알고리즘 문제풀이

( 문시해알의 관점으로 작성)

point : 문제 해결을 위해 단계별로 쪼개서 작게 접근하기
매소드 사용보다는 기본 코드로 해결 방법을 찾는 연습하기

제 1) 최댓값 찾기

1)접근 방법 생각하기
도 - 아무것도 생각나지 않음 , 구글링 없이 나는 아무것도 아니였음..

2)코드
결방법


function find_max_num(array) {
    // 가장 큰 수를 담을 변수를 0번째 인덱스 값으로 초기화해요!
    let max_num = array[0];
    for (let i = 0; i < array.length; i++) { // 배열을 순차적으로 탐색하면서
        if (array[i] > max_num) { // 현재 발견한 값이 max_num보다 크면!
            // "너! 나와!" 하고 기존의 max_num을 밀어내고 본인이 max_num으로 등극해요!
            max_num = array[i];
        }
    }
    return max_num; // 선출된 max_num을 리턴해요!
}

console.log("정답 = 6 / 현재 풀이 값 = ", find_max_num([3, 5, 6, 1, 2, 4]));
console.log("정답 = 6 / 현재 풀이 값 = ", find_max_num([6, 6, 6]));
console.log("정답 = 1888 / 현재 풀이 값 = ", find_max_num([6, 9, 2, 7, 1888]));

게된것 : 배열 내에서 가장 큰 수를 찾아서 가장 큰 수를 저장할 변수를 만들기
비교군과 대조군을 만들어서 비교하며 큰수를 찾기

문제 2)

// 사용자 입력을 받기 위해 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();
profile
개발을 계발합니다

0개의 댓글