python zip 을 이용한 2차원 배열 회전

이동욱·2021년 3월 29일
0

python

목록 보기
1/2

2차원 시계 방향으로 90도 회전

matrix = [[1,2,3], [4,5,6],[7,8,9]]

def rotate_matrix90(matrix):
	col = len(matrix[0])
    new_matrix = [[0] * len(matrix) for _ in range(len(matrix))]
    for i in range(len(matrix)):
        for j in range(len(matrix[0])):
            new_matrix[i][j] = matrix[col-j-1][i]
    return new_matrix


def cool_rotate_matrix90(matrix):
    return list(zip(*matrix))


print(rotate_matrix90(matrix))
print(cool_rotate_matrix90(matrix[::-1]))
# 결과
[[7, 4, 1], [8, 5, 2], [9, 6, 3]]
[(7, 4, 1), (8, 5, 2), (9, 6, 3)]

노가다 버전과 zip 버전이 있다. 개인적으로 zip 버전은 생각지도 못했는데 진짜 멋진 것 같다.

profile
무엇을 해야 재밌을까!

0개의 댓글