この解答例は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
解説:
row
とcol
は、それぞれ現在の行と列を保持します。message
は、通過した文字列を保持します。direction
は、現在の進行方向を保持します。初期値は、右下方向を表す1
です。while
ループの中では、進行方向に従って、現在地を更新し、通過した文字列をmessage
に追加していきます。- 行けなくなった場合、条件分岐で進行方向を変更します。
message
が空の場合は、空の文字列を返します。