더북(TheBook)

여기서는 두 숫자를 합친 후 -1을 곱했습니다. 2, 2, 4, 8이 있다면 2, 2를 합친 4에 -1을 곱해 -4로 만듭니다. 그러면 -4, 4, 8이 남아서 더 이상 합칠 숫자가 없습니다. 나중에 newData에서 data로 옮길 때 음수만 양수로 바꾸면 됩니다.

if (cellData) { // 숫자가 0이 아니면
  const currentRow = newData[i];
  const prevData = currentRow.at(-1);
  if (prevData === cellData) { // 이전 숫자와 지금 숫자의 값이 같으면
    currentRow[currentRow.length - 1] *= -2;
  } else {
    newData[i].push(cellData);
  }
}

더미 데이터의 셋째 줄을 [2, 2, 4, 8]로 바꾼 뒤 코드에서 -2를 2로 바꾸고 왼쪽으로 몰아 보면 앞에서 언급한 문제가 발생합니다. 직접 확인해 보세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.