본문 바로가기

알고리즘/js

Lv.0 두 수의 차[2/100]

[문제]

정수 num1, num2가 주어질 때, num1에서 num2를 뺀 값을 return 하도록 solution함수를 완성하시오.

 

 

[입출력 예]

num1 num2 result
2 3 -1
100 2 98

 

 

 

 

 

 

 

 

 

 

 

 

 

 

답 스포 방지

 

 

 

 

 

 

 

 

 

 

 

 


function solution(num1, num2){
   return num1-num2
}

or

const solution = (num1, num2) => num1 - num2

 


재밌었던 코드
function hiki(x , y) {
    if (y == 0) return x;
    return hiki(x ^ y, (~x & y) << 1);
}

function solution(num1, num2) {
    return hiki(num1, num2);
}

비트계산하는건데 예를들어 num1=2, num2=3일때 2진수로 변환해보면,

num1=x 2 2진수: 10
num2=y 3 2진수: 11

 

 

if문에서 y==0 은 false

그래서 x^y, (~x&y)<<1을 구행해준다.

 

1. 연산자 우선순위에 의해 and가 먼저일텐데 그럴까싶어서 해봤다.

x=01, ~x=01

y=11

~x&y=01

<<1=

 

~x는  01이 된다.

01^11=10=2

(~x&y)=01

'알고리즘 > js' 카테고리의 다른 글

Lv.0 두 수의 나눗셈[7/100] Math.trunc()  (0) 2024.09.27
Lv.0 두수의 곱[6/100]  (0) 2024.09.27
Lv.0 나머지 구하기[3/100]  (0) 2024.09.26
Lv.0나이 출력[1/100]  (0) 2024.09.26
Lv.0숫자 비교하기[4/100]  (0) 2024.09.26