문제 풀이 최적화
이번에는 앞의 풀이 방식을 조금 더 최적화할 수 있는 방법을 알아보겠습니다. 파이썬에서는 슬라이싱 기능을 지원한다는 걸 기억하고 있나요? 슬라이싱을 사용하면 for 문을 줄이고 문제를 매우 쉽게 풀 수 있습니다.
1. 가로 방향으로 1씩 증가하는 주어진 크기만큼의 행렬을 만듭니다.
동일하게 리스트 컴프리헨션으로 생성하겠습니다. 이 코드는 변수 이름을 제외하면 모두 똑같습니다.
board = [[columns * j + (i + 1) for i in range(columns)] for j in range(rows)]
2. 회전해야 할 위치들의 값을 받아옵니다.
이번에는 함수를 따로 만들지 않고, 기존의 변수로 다뤄서 문제를 해결해보겠습니다. 함수로 만드는 것과 어떤 차이가 있는지 생각하면서 살펴보세요.
for query in queries:
a, b, c, d = query[0] - 1, query[1] - 1, query[2] - 1, query[3] - 1
역시 앞의 코드와 동일하게 배열을 조회할 때는 원래 숫자에 -1을 해야 한다는 점만 기억하면 됩니다.