3. 행렬을 시계 방향으로 회전시킵니다.
이번에도 똑같이 시계 방향 회전을 ‘반대로’ 구현하되, 파이썬의 슬라이싱 기능을 사용하겠습니다.
row1, row2 = board[a][b:d], board[c][b + 1:d + 1]
_min = min(row1 + row2)
for i in range(c, a, -1):
board[i][d] = board[i - 1][d]
if board[i][d] < _min: _min = board[i][d]
for i in range(a, c):
board[i][b] = board[i + 1][b]
if board[i][b] < _min: _min = board[i][b]
board[a][b + 1:d + 1], board[c][b:d] = row1, row2
모서리의 가로 데이터를 리스트 슬라이싱으로 받아 마지막에 그대로 값을 할당하여 문제를 해결하는데, 세로 데이터는 슬라이싱할 수 없으므로 for 문을 써야 하지만 그럼에도 코드가 굉장히 짧아집니다. 이런 식으로 언어만의 특징과 강점을 활용하면 좀 더 쉽게 구현할 수 있습니다.