[파이썬] N x N 배열 회전하기
문제
4 x 4 배열을 시계방향으로 90도 회전하는 예시입니다.
규칙을 찾아보면 다음과 같습니다.
- 먼저 값 8의 좌표를 알아보면
(1,3)
에서 회전 후(3,2)
가 되었습니다.
- 값 10의 좌표
(2,1)
은 회전 후(1,1)
이 되었습니다
이렇게 규칙을 찾아나가다 보면 다음과 같은 사실을 알 수 있습니다
열
의 좌표는 회전 후행
의 좌표가 된다
행
의 좌표는 회전 후배열길이-1-열
의 좌표가 된다
즉, (i,j)
는 회전 후 (j,N-1-i)
가 됩니다
위의 규칙을 토대로 코드를 작성하면 다음과 같습니다
코드
from copy import deepcopy
def rotate_list(list):
new_list = deepcopy(list)
for i in range(len(list)):
for j in range(len(list)):
new_list[j][len(list)-1-i] = list[i][j]
return new_list
- 함수 rotate_list()는 list를 시계방향으로 90도 회전 후 새로운 리스트를 반환합니다
- deepcopy 메서드를 사용해서 리스트를 깊은복사합니다
- 여기서 주의해야할 점은, 새로운 리스트의
(j , N-1-i)
값은 회전 전(i,j)
의 값이어야 합니다. 대입 방향에 주의해야합니다
후기
규칙만 잘 찾아보면 쉬운 문제였습니다
Author And Source
이 문제에 관하여([파이썬] N x N 배열 회전하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sa02045/파이썬-N-x-N-배열-회전하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)