この解答例は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
が空の場合は、空の文字列を返します。