λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸƒ algorithm/leetcode

LeetCode 48 - Rotate Image (Medium)

by HandHand 2021. 3. 4.

문제

LeetCode - 48번

풀이 κ³Όμ •

주어진 배열을 90도 μ‹œκ³„λ°©ν–₯으둜 νšŒμ „ν•˜λŠ” 연산을 μΆ”κ°€ λ©”λͺ¨λ¦¬ 없이 κ΅¬ν˜„ν•΄μ•Όν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€.

μ‚Όμ„± SW μ—­λŸ‰ ν…ŒμŠ€νŠΈ 기좜 λ¬Έμ œμ—μ„œλ„ λΉ„μŠ·ν•œ κ΅¬ν˜„ μš”κ΅¬μ‚¬ν•­μ΄ μ‘΄μž¬ν•˜λŠ” λ¬Έμ œκ°€ μžˆμ—ˆλŠ”λ°
κ·Έλ•ŒλŠ” μž„μ‹œκ°’μ„ μ €μž₯ν•  λ³€μˆ˜λ₯Ό ν•˜λ‚˜ λ‘¬μ„œ νšŒμ „ 연산을 μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

μ΄λ²ˆμ—λŠ” λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό νšŒμ „ν•΄μ•Όν•˜κΈ° λ•Œλ¬Έμ— λΉ„νš¨μœ¨μ μΈ κ±° κ°™μ•„μ„œ λ‹€λ₯Έ λΆ„μ˜ κ΅¬ν˜„ 방법을 μ°Έκ³ ν–ˆμŠ΅λ‹ˆλ‹€.

κ°€μž₯ κ°„λ‹¨ν•œ λ°©λ²•μœΌλ‘œλŠ” μ „μΉ˜ 행렬을 λ§Œλ“  λ‹€μŒ 각 행을 λ’€μ§‘λŠ” 연산을 μˆ˜ν–‰ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
쑰금만 생각해보면 λ˜λŠ” λ¬Έμ œμ˜€λŠ”λ° μ•žμœΌλ‘œ λΉ„μŠ·ν•œ μœ ν˜•μ˜ λ¬Έμ œκ°€ λ‚˜μ˜€λ©΄ 잊자말고 ν™œμš©ν•΄μ•Όκ² μŠ΅λ‹ˆλ‹€.

μ½”λ“œ

/**
 * @param {number[][]} matrix
 * @return {void} Do not return anything, modify matrix in-place instead.
 */
var rotate = function (matrix) {
  for (let r = 0; r < matrix.length; r++) {
    for (let c = r; c < matrix[0].length; c++) {
      [matrix[r][c], matrix[c][r]] = [matrix[c][r], matrix[r][c]];
    }
  }

  matrix.forEach((row) => row.reverse());
  return matrix;
};
λ°˜μ‘ν˜•

πŸ’¬ λŒ“κΈ€