배열 돌리기 1

https://www.acmicpc.net/problem/16926


풀이

입력받은 2차원 배열을 1차원의 띠로 생각한다.

위 그림과 같이 띠로 생각할 경우 회전의 수만큼 앞에서 부터 잘라 뒤에 붙여넣는다면 회전한 것과 같은 효과라고 볼 수 있다.
이런 아이디어를 구현하기 위해 첫번째 포인트로 입력값이 주어졌을 때 띠의 개수(l)를 구해야 한다.
l은 입력값의 조건중 min(N, M) mod 2 = 0이라는 조건이 있으므로 min(n, m) / 2이라고 볼 수 있다.
근데 여기서 min(n, m) + 1를 한 이유는 입력값의 조건을 잘 못보고 홀수일 경우를 생각한 것이다.

두번째 포인트는 회전의 수를 띠의 크기로 나눈 나머지만큼 앞에서부터 잘라서 뒤로 붙여야한다.
왜냐하면 회전의 수가 띠의 크기보다 클 경우가 있기 때문이다.

이런 포인트들에 유의하며 띠를 수정하고 최종적으로 띠를 다시 붙여넣어 출력한다.