ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20.09.17
    hustle 2020. 9. 18. 00:18
    parseInt () 메서드

    parseInt()문자열을 구문 분석하고 정수를 반환합니다. 공백이 허용됩니다. 첫 번째 숫자 만 반환됩니다.
    - 실수도 소수점을 없애고 정수로 변환한다.
    - 숫자로 시작한 뒤 공백이 있으면 첫 숫자만 반환한다.
    - 문자로 시작하면 NaN을 반환한다.

     

     

    N이 소수인지 판별하는 방법

    N의 제곱근으로 나눠보고 나눠지면 소수가 아니다

    N의 제곱근은 Math.sqrt(N)으로 구할 수 있고, 정수로 나누어 떨어지지 않는다면 parseInt(Math.sqrt(N))을 하면된다.

     

    코플릿 17~21

    소수 여부 파악하기
    function isPrime(num) {
      let result = true;                          //기본 결과 값 설정
      let sqrt = parseInt(Math.sqrt(num));        //제곱근 정수로 바꾸기
      if(num === 2){                              //2는 무조건 소수
        return result;
      }
      for(let i = 2; i<=sqrt; i++){
        if(num % i ===0){                         //num이 2부터 제곱근까지의 값으로 나눴을 때 0이되면 result가 false로바뀜
          result = false;
        }
      }return result;                             //0이 안되면 true 인거고 0이 되면 false인 것 리턴
      // TODO: 여기에 코드를 작성합니다.
    }
    

    - Math.sqrt와 parseInt를 이해하려고 노력하느라 애썼다. 중학교 때부터 수학을 포기하지 말았어야 했다..

     

    소수 목록 만들기
    function listPrimes(num) {            
    let result = '2';                          //2는 무조건 소수기에 맨 앞에 붙이기
    for (let i = 3; i <= num; i = i+2){        //1과 2 제외하기 위해 3 & 짝수는 무조건 소수가 아니니 홀수만나오도록 +2
        let isPrime = true;                    //소수와 낫소수나누기
        let sqrt = parseInt(Math.sqrt(i));     //제곱근 정수로 바꾸기
        for (let j = 3; j<=sqrt; j = j+2){     //1과 2 제외하고 3 / 제곱근보다 적게  (왜 j+2인지 모르겠음)
          if(i % j === 0){
            isPrime = false;
            break;                             //i가 j로 나눠지는 순간 false로 변하면서 브레이크 먹고 다시 i+=2 반복
          }
        }
    
        if(isPrime){                           //isPrime이 트루면 (i%j !== 0)결과에 더하기
          result = `${result}-${i}`; 
        }                                      
    }
    
      return result;
    }

    - break위치 잡는게 너무 어려웠고, 아마 다시 풀라면 못풀거다. 그래서 다시 풀 예정

    문자열을 입력받아 문자열을 첨부터 한글자씩 붙이기

     

    function makeMarginalString(str) {
      let result = '';
    
      for (let i = 0; i < str.length; i++) {
        for (let j = 0; j <= i; j += 1) {  // 0 - 0,1 - 0,1,2 ...이렇게 훑어야해서 이중뽀문
          result = result + str[j]; 
        }
      }
    
      return result;
    }
    
    //makeMarginalString('abc')
    //result = 'aababc'

    - 왜 이중뽀문을 써야하는지 도무지 이해가 안가서 두뇌풀가동했던 문제다. 정말 바보아닌지.

    'hustle' 카테고리의 다른 글

    20.09.20 코드스테이츠 Full Pre 7기 2주 회고  (2) 2020.09.21
    .  (0) 2020.09.18
    20.09.16  (0) 2020.09.16
    20.09.15  (0) 2020.09.15
    20.09.14  (0) 2020.09.14

    댓글

Designed by Tistory.