[LeetCode] Number Complement

준규·2022년 9월 12일
0

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을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글