この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
9. 暗号化されたメッセージ解読する

以下が解答例になります。

function decodeMessage(array) {
  let row = 0;
  let col = 0;
  let message = '';
  let direction = 1; // 1: 右下, -1: 右上
  while (row >= 0 && row < array.length && col >= 0 && col < array[0].length) {
    message += array[row][col];
    if (row === 0 && direction === -1) {
      direction = 1;
      col++;
    } else if (col === array[0].length - 1 && direction === 1) {
      direction = -1;
      row++;
    } else {
      row += direction;
      col += direction;
    }
  }
  return message ? message : '';
}

// 使用例
const array = [
  ['I', 'B', 'C', 'A', 'L', 'K', 'A'],
  ['D', 'R', 'F', 'C', 'A', 'E', 'A'],
  ['G', 'H', 'O', 'E', 'L', 'A', 'D']
];

console.log(decodeMessage(array)); // 出力結果: IROCLED

解説:

  1. rowcolは、それぞれ現在の行と列を保持します。
  2. messageは、通過した文字列を保持します。
  3. directionは、現在の進行方向を保持します。初期値は、右下方向を表す1です。
  4. whileループの中では、進行方向に従って、現在地を更新し、通過した文字列をmessageに追加していきます。
  5. 行けなくなった場合、条件分岐で進行方向を変更します。
  6. messageが空の場合は、空の文字列を返します。