1. Object, OOP 정리

객체 지향 프로그래밍

Object

2. 코딩 테스트

function solution(n) {
    var answer = 0;
    // n이라는 수가 4보다 작으면, 합성수는 0개이므로 0을 리턴
   if (n < 4) return 0;
   // 횟수 반복문 부터 시행
   for (let i = 4; i <= n; i++){
       console.log(i)
       // 소인수 분해를 통한 합성수 찾기
       // 제곱근보다 작은 값들을 통해 합성수를 찾는다.
       for (let j = 2; j <= Math.sqrt(i); j++){
           console.log(j)
           if (i % j === 0) {
               answer++
               // 값이 있다면 break를 걸어서 정지 시키기
               break;
           }
       }
   }
   return answer;
}

답안을 보니 누군가는 DP라는 것을 이용해서 풀었다.

DP : Dynamic Programing(동적 계획법)의 줄임말

// 다른 사람의 풀이 중 DP를 쓴 것이 있다.
// dp가 뭘까??

function solution2(n) {
   let dp = new Array(n+1).fill(1)
   for(let i = 2 ; i <= n ; i++){
       if(dp[i]){
           for(let j = 2 ; i*j <= n ; j++){
               dp[i*j] = 0
           }
       }
   }
   return dp.filter(el => el === 0).length
}

DP에 대해서는 내일 알아보도록 하자.

3. Node.JS Study Challenge 문제

카이사르 암호를 적용한 후, 파일의 첫글자는 평문1번, 두번째 글자는 암호문의 1번을 적용하면서 반복문을 돌려 26개 알파벳 전부를 이용해 파일을 생성해보기

ex) 카이사르 랜덤 수 = 3

파일명 : ‘AD’, ‘BE’, ‘CF’, …..