complement 란 어떤 숫자가 주어질 때 그 숫자를 이진수로 바꾼 뒤 1은 0으로 0은 1로 바꾼다음 바꾼 이진수를 다시 10진수로 바꾼 숫자를 complement라고 한다
Example을 보자
1번 예시를 보면 num 5는 이진수로 바꾸면 101이고 101을 규칙대로 바꾼다면 010이 된다
이 010을 다시 10진수로 바꾸면 2가 되는데 2가 바로 5의 complement 가 된다
const findComplement = function(num) {
const binum = num.toString(2);
let biComplement = ""
for(char of binum) {
if(char === "1") {
biComplement += "0"
}else {
biComplement += "1"
}
}
return parseInt(biComplement, 2);
};
먼저 주어진 num을 2진수로 바꾸어 binum 변수에 할당해 주고
binum을 순회하면서 1이면 0으로 0이면 1로 바꿔서 biComplement에 할당해준다
그 후 biComplement를 다시 10진수로 바꾸어 리턴해주었다
submit을 해보니
정답이었다!