더북(TheBook)

문제 풀이

배열 회전 문제입니다. 회전하는 방법을 알고 있다면 매우 쉽게 풀 수 있지만, 어떻게 해야 할지 감을 잡을 수 없으면 굉장히 난해한 문제입니다. 차분하게 종이와 연필을 들고 문제를 분석해봅시다.

 

문제 풀이 흐름

행렬의 크기와 회전해야 하는 두 좌표가 주어지면

1. 1씩 증가하는 행렬을 생성합니다.

2. 회전해야 할 위치들의 값을 받아옵니다.

3. 행렬을 시계 방향으로 회전시킵니다.

4. 3번 과정에서 최솟값을 찾습니다.

 

코드 작성

1. 1씩 증가하는 행렬을 생성합니다.

행렬(2차원 배열)을 만드는 것은 쉽습니다. 2차원 배열을 선언하고 for 문을 사용하여 생성한 뒤, 가로 방향으로 1씩 증가시키면서 배열에 값을 할당하면 됩니다.

matrix = [[(i) * columns + (j + 1) for j in range(columns)] for i in range(rows)]

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.