Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 바이너리 배열을 추가하는 알고리즘

<시간/>

이진 덧셈의 기초 -

이진 덧셈의 네 가지 규칙은 -

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

이러한 점을 염두에 두고 이진 덧셈은 10진 덧셈과 매우 유사합니다(캐리 원칙을 따름).

바이너리 문자열만 포함하는 두 개의 배열을 취하는 JavaScript 함수를 작성해야 합니다. ('0' 또는 '1').

함수는 배열에서 해당 바이너리 비트를 추가하고 해당 배열의 추가 결과를 포함하는 새 배열을 반환해야 합니다.

예를 들어 - 입력 배열이 -

인 경우
const arr1 = ['1', '0', '1'];
const arr2 = ['1', '0', '1'];

그러면 출력은 다음과 같아야 합니다. -

const output = ['1', '0', '1', '0'];

예시

이에 대한 코드는 -

const arr1 = ['1', '0', '1'];
const arr2 = ['1', '0', '1'];
const addBinary = (arr1 = [], arr2 = []) => {
   const str1 = arr1.join('');
   const str2 = arr2.join('');
   let carry = 0, temp = 0, res = '';
   for(let i = Math.max(str1.length, str2.length) − 1; i >= 0; i−−){
      const el1 = +str1[i] || 0;
      const el2 = +str2[i] || 0;
      if(el1 + el2 + carry > 1){
         temp = 0;
         carry = 1;
      }else{
         temp = el1 + el2 + carry;
         carry = 0;
      };
      res = temp + res;
   };
   if(carry){
      res = carry + res;
   };
   return res.split('');
};
console.log(addBinary(arr1, arr2));

출력

콘솔의 출력은 -

[ '1', '0', '1', '0' ]