본문 바로가기

JavaScript 알고리즘 100일 챌린지(제주코딩베이스캠프)

챌린지 1번째 도전

몫 구하기

 

문제

 

function solution(num1, num2) {
    var answer = num1 / num2;    
    return answer;
}

 

num1에서 num2를 나누게 되면 실수로 출력이 된다.(소수점 까지 출력)

이걸 바꾸기 위해서는

function solution(num1, num2) {
    var answer = Math.floor(num1 / num2);    
    return answer;
}

 

Math.floor(num1 / num2)를 쓸수도 있지만 알고리즘 문제에서는 

 

function solution(num1, num2) {


    var answer = ~~(num1 / num2);    
    return answer;
}

 

이렇게 사용할 수 있다. ~ 한개가 부정연산자인데, ex) 비트가 5라고 가정했을때 1001 -> 0110 이렇게 다 뒤집는것이다.

 

다 뒤집었을때 -(n + 1)이 된다. 

 

실행 결과

 

2가지 방법

  • Math.floor를 사용하는 방법
  • ~ 부정연산자를 사용하는 방법


숫자 비교하기

문제

 

function solution(num1, num2) {
    var answer = 0;
    return answer;
}

 

 

function solution(num1, num2) {
    var answer = 0;
    return num1 === num2;
}

num1과 num2과 같다. 보통 JavaScript에서는 타입까지 같이 보기 때문에 등호(=) 두개보다는 세개를 선언을 한다. 

같으면 1 다르면 -1로 삼항연산자를 사용

 

function solution(num1, num2) {
    var answer = 0;
    return num1 === num2 ? 1 : -1;
}

 

이 방식말고도 if문을 사용해서 풀수도 있다.

function solution(num1, num2) {
    let answer = 0;
    if(num1 === num2) {
        answer = 1;
    } else {
        answer = -1;
    }
    return answer;
}

 

결과

2가지 방법

  • 삼항연산자를 사용하는 방법
  • if문을 사용하는 방법

'JavaScript 알고리즘 100일 챌린지(제주코딩베이스캠프)' 카테고리의 다른 글

챌린지 6번째  (0) 2024.12.01
챌린지 5번째  (0) 2024.12.01
챌린지 4번째  (0) 2024.12.01
챌린지 3번째 도전  (0) 2024.11.29
챌린지 2번째 도전  (0) 2024.11.29