가끔 코딩테스트 문제를 풀다보면, 약간의 트릭? 기술?을 쓰면 편한 부분들이 있다.
오늘 작성하는 부분들이 바로 그런 것들이다. 알면 너무 편하고, 모르면 쌉고생하는 것들...
바로 ㄱㄱ해보자
90도 회전
list(zip( *arr[::-1] ))
[1 2 3] [7 8 9] [7 4 1] [4 5 6] -> [4 5 6] -> [8 5 2] [7 8 9] [1 2 3] [9 6 3] *arr *arr[::-1] zip(*arr[::-1])
행과 열 바꾸기
list(zip( *arr ))
- 가끔 for문을 돌면서 가로의 합, 세로의 합을 구해야될 때 가 있음!
- 가로의 합은 평소대로 이중 for문 돌면서 구할 수 있지만, 세로의 합은 구하기가 좀 번거로움!
- 그럴 때 행과 열을 바꿔주면, 평소대로 이중 for문 돌면서 세로의 합도 구할 수 있다!
[1 2 3] [1 4 7] [4 5 6] -> [2 5 8] [7 8 9] [3 6 9] *arr zip(*arr)