"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 제자리에서 손쉽게 매트릭스 회전: 종합 가이드

제자리에서 손쉽게 매트릭스 회전: 종합 가이드

2024년 10월 31일에 게시됨
검색:335

Effortlessly Rotate a Matrix in Place: A Comprehensive Guide

행렬을 시계 방향으로 90도 회전하는 것은 컴퓨터 과학 및 기술 인터뷰에서 흔히 발생하는 문제입니다. 이 문제는 새 행렬에 추가 메모리를 사용하지 않고 제자리에서 회전을 수행하는 것이 목표이기 때문에 특히 흥미로울 수 있습니다. 이 가이드에서는 명확한 설명과 예제 코드를 통해 이를 달성하는 방법을 살펴보겠습니다.


문제 설명

이미지를 나타내는 n x n 2D 행렬 A가 제공됩니다. 당신의 임무는 이미지를 시계 방향으로 90도 회전시키는 것입니다. 추가 어레이를 사용하는 경우 부분 점수만 받게 됩니다.

문제 제약

1≤n≤1000

입력 형식

정수로 구성된 2D 행렬 A

출력 형식

2D 회전 행렬

입력 예

[
    [1, 2],
    [3, 4]
]

예제 출력

[
    [3, 1],
    [4, 2]
]

예시 설명

행렬을 90도 회전한 후:

  • 1은 위치 2로 이동
  • 2는 위치 4로 이동합니다.
  • 4는 위치 3으로 이동
  • 3이 1번 위치로 이동

단계별 솔루션

1단계: 행렬 전치

  • 행렬을 전치한다는 것은 행을 열로, 열을 행으로 변환하는 것을 의미합니다. 이는 주 대각선(왼쪽 상단에서 오른쪽 하단 대각선으로)에서 요소를 교환하여 수행할 수 있습니다.

2단계: 각 행 반전

  • 행렬이 전치되면 다음 단계는 각 행을 뒤집는 것입니다. 이렇게 하면 행렬이 시계 방향으로 90도 회전하게 됩니다.

예제 코드

회전을 수행하는 JavaScript 함수는 다음과 같습니다.

function rotateMatrix(A) {
    const n = A.length;

    // Step 1: Transpose the matrix
    for (let i = 0; i 





코드 설명

행렬을 전치합니다:

  • 두 개의 중첩 루프를 사용하여 행렬을 반복합니다.
  • A[i][j]와 A[j][i] 요소를 교환하여 행렬을 전치합니다.

각 행을 뒤집습니다.

  • 내장된 reverse() 메소드를 사용하여 전치된 행렬의 각 행을 반전시킵니다.

회전된 행렬을 반환합니다.

  • 각 행을 전치하고 반전시킨 후 행렬이 시계 방향으로 90도 회전됩니다.

결론

행렬을 제자리에서 회전하는 것은 배열 조작 및 제자리 알고리즘에 대한 이해를 보여주는 귀중한 기술입니다. 행렬을 전치한 다음 각 행을 반대로 하면 추가 공간을 사용하지 않고도 원하는 회전을 얻을 수 있습니다. 기술 인터뷰와 코딩 과제에서 문제 해결 능력을 향상하려면 이 방법을 연습하세요.

릴리스 선언문 이 기사는 https://dev.to/imkrunalkanojiya/effortously-rotate-a-matrix-in-place-a-comprehensive-guide-251j?1에서 복제됩니다. 침해가 있는 경우, [email protected]으로 문의하시기 바랍니다. 그것을 삭제하려면
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3