Mission01. 기본 테스트
1) 변수 선언해보기
var a; let a; const a;
2) 5의 4 제곱을 코드로 표현해서 계산된 값 출력해보기
console.log(5**4);
3) 소수로 된 값(e.g. 2346.7)을 반올림해보기
// 반올림 Math.round(2346.7);// 올림 Math.ceil();// 내림(절삭) Math.floor();
4) 분기문 작성해보기
// 분기문? 변수의 특정한 값이 x이다 라는 조건을 걸고 맞으면 이쪽, // 아니면 저쪽으로 가라고 지정 // if 문 if() { }else if() { } else { }// 삼항연산자 const a ? b c// swich문 switch(a) { case 1: b=1; break; case 2: b=2; break; }
5) 반복문 작성해보기
// for문 for(초기값; 종료조건; 증감식){ main logic }// while문 var sum = 0, i = 1; while(i<=10){ sum += i; i++; } console.log('1~'+(i-1)+'합은'+sum);// do-while문 var i = 1; do { console.log(i) i++ } while(i<=10);
Mission02. 알고리즘 맛보기
1) 최댓값 찾기
Q. 다음과 같이 숫자로 이루어진 배열이 있을 때, 이 배열 내에서 가장 큰 수를 반환하시오.
[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; } 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) UP & DOWN 게임
Q. 문제 설명
1. 프로그램이 1~100의 숫자 중 하나를 랜덤으로 정합니다.
2. 사용자는 이 숫자를 맞추어야 합니다.
: 입력한 숫자보다 정답이 크면 → “UP” 아니면 → “DOWN”, 정답이면 → “CORRECT” 출력
3. 지금까지 숫자를 입력한 횟수를 알려줍니다.const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let answer = Math.floor(Math.random() * 100) + 1; // 1~100 사이의 난수를 발생시킨다. 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(); // 함수 실행
2) UP & DOWN 게임
Q. 입력 문자열에 나타나는 각 알파벳의 종류, 갯수를 요약하여 나타내시오.
1. 입력으로 소문자의 알파벳 순으로 정렬된 문자열이 입력됩니다.
2. 각 알파벳은 중복이 가능합니다.
3. 중간에 없는 알파벳이 있을 수도 있습니다.
Ex) abc -> a1/ b1/ c1function summarize_string(target_string) { let n = target_string.length; let count = 0; // 문자 갯수 let result_str = ''; // 0 ~ n-2까지 루프를 돌아요 for (let i = 0; i < n - 1; i++) { // i번째 문자와 i + 1번째 문자가 같으면 count를 늘려야겠죠?! if (target_string[i] === target_string[i + 1]) { count++; } else { // i번째 문자와 i + 1번째 문자가 같지 않으면 카운트를 멈춰요! // 그리고, 현재 문자랑 카운트를 혼합해서 요약표현을 만들어요! // count 초기화는 잊지마세요! result_str += target_string[i] + String(count + 1) + '/'; count = 0; } } // 위에서 n-1 까지 루프를 안 돌았던 이유는 n-1이 마지막 문자이기 때문에 결산을 하기 위함! result_str += target_string[n - 1] + String(count + 1); return result_str; } let input_str = "acccdeee"; console.log(summarize_string(input_str));