관리 메뉴

기록

행렬 방향별 연산 - 파이썬(Python) 본문

코딩

행렬 방향별 연산 - 파이썬(Python)

김아이지 2022. 6. 22. 02:21
Matrix
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

행렬 방향별 연산 (한줄씩 수행)
행 or 열 방향 기준으로 행이면 행연산, 열이면 열연산
1) 아래 방향 열 연산
1  6 11 16 21
2  7 12 17 22
3  8 13 18 23
4  9 14 19 24
5 10 15 20 25

2) 오른쪽 방향 행 연산
 1  2  3  4  5
 6  7  8  9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

3) 위 방향 열 연산

5 10 15 20 25
4  9 14 19 24
3  8 13 18 23
2  7 12 17 22
1  6 11 16 21

4) 왼쪽 방향 행 연산
 5  4  3  2  1
10  9  8  7  6
15 14 13 12 11
20 19 18 17 16
25 24 23 22 21

 

이러한 연산의 경우 기준점을 행이냐 열이냐 그리고 0번째 행이냐 N번째 행이냐로 구분지어 해결할 수 있다.

또한, 1씩 증가하는 연산의 경우 (i*N) + j + 1 의 식을 통해서 1씩 증가할 수 있다.

 

N = 5

Matrix = [[0] * N for _ in range(N)]
# 1. 아래 방향 열 연산
# 기준은 0행의 열을 기준으로 내려간다.
for i in range(N):
    for j in range(N):
        Matrix[j][i] =  (i*N)+j+1
print(Matrix)

Matrix = [[0] * N for _ in range(N)]
# 2. 오른쪽 방향 행 연산
for i in range(N):
    for j in range(N):
        Matrix[i][j] = (i*N)+j+1
print(Matrix)

Matrix = [[0] * N for _ in range(N)]
# 3. 위 방향 열 연산
for i in range(N):
    for j in range(N):
        Matrix[N-1-j][i] = (i*N)+j+1
print(Matrix)

Matrix = [[0] * N for _ in range(N)]
# 4. 왼쪽 방향 행 연산
for i in range(N):
    for j in range(N):
        Matrix[i][N-1-j] = (i*N)+j+1
print(Matrix)

 

결과

'코딩' 카테고리의 다른 글

(python)파이썬 - lambda 를 이용한 원소 정렬  (0) 2023.02.15
Comments