神戸プログラミングアカデミーのブログ

「未経験から」「スキルアップ」「起業を目指す」無料で学べる神戸のプログラミング学校&学習コミュニティ

正方形を回転させて表示させよ

// 左に回転する関数
function rotate(arr) {
  //この中を実装する
}
const rect = [
  [6, 1, 8],
  [7, 5, 3],
  [2, 9, 4],
]
let r = rect

for (let i = 0; i < 5; i++) {
  console.log("---")
  for (let j = 0; j < r.length; j++) {
    console.log(r[j])
  }
  r = rotate(r)
}

出力

---
[ 6, 1, 8 ]
[ 7, 5, 3 ]
[ 2, 9, 4 ]
---
[ 8, 3, 4 ]
[ 1, 5, 9 ]
[ 6, 7, 2 ]
---
[ 4, 9, 2 ]
[ 3, 5, 7 ]
[ 8, 1, 6 ]
---
[ 2, 7, 6 ]
[ 9, 5, 1 ]
[ 4, 3, 8 ]
---
[ 6, 1, 8 ]
[ 7, 5, 3 ]
[ 2, 9, 4 ]

長方形でも回転するように

const rect = [
  [6, 1, 8, 2],
  [7, 5, 3, 4],
  [2, 9, 4, 1],
]

解答例

function rotate(arr) {
  const ret = []
  for (let i = 0; i < arr[0].length; i++) {
    const a = []
    for (let j = 0; j < arr.length; j++) {
      const k = arr[0].length - i - 1
      a.push(arr[j][k])
    }
    ret.push(a)
  }
  return ret
}
const rect = [
  [6, 1, 8],
  [7, 5, 3],
  [2, 9, 4],
]
let r = rect

for (let i = 0; i < 5; i++) {
  console.log("---")
  for (let j = 0; j < r.length; j++) {
    console.log(r[j])
  }
  r = rotate(r)
}