Algorithm/컴퓨터알고리즘
'ㄹ'자 모양 배열, 마방진 배열, 배열 회전, 행렬 곱셈 알고리즘 순서도
와븨
2022. 11. 15. 22:47
'ㄹ'자 모양 배열
[순서도]
- 행은 계속해서 증가하고, 열은 증가,감소가 반복된다.
- 변수 D로 진행 방향을 나타낸다. 1이면 우측, -1이면 좌측이다.
- 1~5행까지 증가되면서 외부 반복문이 진행된다. 각 행마다 열 C는 C1부터 C2까지 D씩 변하면서 진행된다. A(R,C)에 값을 저장하고, 값을 1 증가시킨다.
- C1과 C2의 값을 교체시키고 열의 진행 방향을 반대로 바꾼다.
마방진 배열
5행 5열의 2차원 배열 S(5,5)에 대한 마방진 알고리즘 순서도
마방진 규칙
- 1행 중간 열에 위치한 S(1,3)에 먼저 숫자 1을 할당한다.
- 현재 위치에서 45도 대각선 방향으로 한 칸씩 이동하면서 다음 숫자를 할당한다. 45도 대각선 방향으로 이동하기 위하여, 행 번호는 1씩 감소시키고, 열 번호는 1씩 증가시킨다. 만일 감소시킨 행 번호가 1행보다 작으면 마지막 행인 5행으로 재설정하며, 증가시킨 열 번호가 마지막 열인 5열보다 크면 1열로 재설정하여 다음 숫자를 할당한다.
- 배정하려는 위치에 이미 숫자가 배정되어 있으면, 현재 위치보다 행 번호만을 1 증가시켜 행을 재설정한 후 다음 숫자를 할당한다.
[순서도]
- S(1,3)에 먼저 숫자 1을 할당한다.
- R행 C열에 자연수 N을 할당하고 행은 1 감소, 열은 1 증가시킨다. 감소시킨 행이 0이면 5행으로 재설정하고, 증가시킨 열이 6이면 1열로 재설정한다.
- 새로 설정한 위치의 값이 0이면 아직 할당되지 않은 원소이므로 NR, NC의 위치에 N을 할당한다.
- 새로 설정한 위치의 값이 0이 아니면, 이미 할당된 원소이므로 행을 1 증가시켜 N을 할당한다.
배열 회전
배열 A(5,5)를 시계 방향으로 90도 회전시켜 B(5,5)를 생성하는 알고리즘 순서도
[순서도]
- 행 R의 값이 1~5까지 반복되고, 열 c의 값이 1~5까지 반복된다.
- 배열 B의 열 위치는 6-R. 6에서 행을 뺀 만큼이다.
- B(C,N) = A(R,C). 즉, A(R,C) 배열이 B배열의 5열부터 매핑되는 것.
행렬 곱셈 계산하기
[순서도]
- A의 1행부터 B의 1~3열까지 곱하고, A의 2행과 B의 1~3열을 곱한다.
- S(R,C) = 0으로 초기화하고, 행렬 A(R,K)와 B(K,C)의 곱을 누적하는 S(R,C)를 A의 열 수 인 4만큼 반복한다.