물론 나는.. 하나도 풀지 못했다..!
그래도 보면서 어떤 기능으로 작동하는지 보면서 이해해서 설명할 수 있도록 공부해보았다.
let array = [3, 5, 6, 1, 2, 4]
function find_max_num(array) {
let max_num = array[0];
for (let i = 0; i < array.length; i++) {
if (array[i] > max_num) {
max_num = array[i];
}
}
return max_num;
}
// max_num : 배열의 0번째 값으로 초기화
// array[i]가 max_num 보다 크다면 그 값이 max_num으로 들어간다!
// 사용자 입력을 받는 부분
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
// answer에 1 ~ 100 사이의 랜덤한 숫자를 할당
let answer = Math.floor(Math.random() * 100) + 1;
let count = 0;
// count에 도전한 숫자를 기록
// 게임 시작 메세지
console.log(
"1~100 중 랜덤 숫자 하나를 정하였습니다. 과연 당신이 맞출 수 있을까요?!"
);
function askQuestion() {
// 사용자에게 "숫자 입력"이라는 메세지 출력, 숫자 입력하기
rl.question("숫자 입력: ", (guess) => {
count++;
// 입력할때마다 count 증가
if (parseInt(guess) > answer) {
console.log("DOWN");
askQuestion();
// 정답보다 입력한 값이 크면 "DOWN" 메세지 출력, 숫자를 다시 입력하기 위한 함수를 다시 호출
} else if (parseInt(guess) < answer) {
console.log("UP");
askQuestion();
// 정답보다 입력한 값이 크면 "UP" 메세지 출력,
숫자를 다시 입력하기 위한 함수를 다시 호출
} else if (parseInt(guess) === answer) {
console.log("CORRECT");
console.log("숫자 입력한 횟수: " + count + "번");
// 정답과 입력한 값이 같은 경우, "CORRECT" 메세지 출력, count된 숫자 출력
rl.close(); // 프로그램 종료
}
});
};
askQuestion();
입,출력 예시와 같이 입력 문자열에 나타나는 각 알파벳의 종류,갯수를 요약하여 나타내시오.
function summarize_string(target_string) {
let n = target_string.length;
// n에 target_string 길이를 저장
let count = 0;
// count에 현재 문자의 등장 횟수
let result_str = '';
// result_str에 최종 결과문자열을 저장
for (let i = 0; i < n - 1; i++) {
if (target_string[i] === target_string[i + 1]) {
count++;
// i번째의 문자와 그 다음 문자가 같으면 count 증가
} else {
result_str += target_string[i] + String(count + 1) + '/';
count = 0;
// 다르면, 현재까지의 문자와 등장 횟수를 result_str에 추가하고 count를 초기화
}
}
result_str += target_string[n - 1] + String(count + 1);
// 마지막 문자와 숫자를 result_str에 추가
// 마지막 문자까지 반복문이 돌지 않아서 추가해줘야함!
return result_str;
}
let input_str = "acccdeee";
console.log(summarize_string(input_str));
오늘 아침 9시에 알고리즘 특강을 한 후 멘탈이 나갔다 ㅎㅎ
아직 많이 배우지는 않았지만 갑자기 수준이 확 올라간 느낌이였다.
그래도.. 이 코드를 보며 배우고 내가 코드를 짤 때 배웠던 내용이 생각난다면 좋겠다.