[알고리즘] 90도 회전

2021. 10. 8. 20:10알고리즘/문제 풀이

728x90

A, B 두 개의 2차원 배열이 있을 때 A배열에서 90도를 회전시킨 값이 B배열입니다.

 

A배열은 행이 고정된 상태에서 열이 변화하는 형태이고

 

B배열은 열이 고정된 상태에서 행이 변화하는 형태인데요.

 

 

 

데이터의 위치를 보면 유사한 공통점을 찾을 수 있습니다.

 

A(1, 1) → B(1, 5)

A(1, 2) → B(2, 5)

A(1, 3) → B(3, 5)

A(1, 4) → B(4, 5)

A(1, 5) → B(5, 5)

 

A(2, 1) → B(1, 4)

A(2, 2) → B(2, 4)

A(2, 3) → B(3, 4)

A(2, 4) → B(4, 4)

A(2, 5) → B(5, 4)

 

순으로 반복되는 걸 알 수 있는데요.

 

A배열의 열에 사용된 값이 B배열의 행으로 사용되고

 

6에서 A배열의 행값을 빼면 B배열의 열값이 나오게 됩니다.

 

 

A배열의 행을 R, 열의 C라는 변수로 선언했을 때

 

이를 식으로 나타내면

 

B(C, 6-R) = A(R, C)

 

가 됩니다.

 


 

 

이를 응용한 순서도를 알아보겠습니다.

 

5행 5열의 A배열에 아래와 같은 데이터를 입력한 뒤

 

90도 회전시킨 결과를 B배열에 저장하는 순서도입니다.