알고리즘 문제풀이
( 문시해알의 관점으로 작성)
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();