2023. 8. 23. 23:47, 카테고리 없음
2차원 배열에 있는 값을 오른쪽 방향으로 90도 회전해서 새로운 배열로 나타내는 방법은 위와 같은 규칙을 통해서 알아낼 수 있고,
그것을 코드로 작성해서 rotate 함수를 만들어내면,
void rotate(){
int tmp[12][12];
for(int i = 0; i < r; i++)
for(int j = 0; j < c; j++)
tmp[i][j] = paper[i][j];
for(int i = 0; i < c; i++)
for(int j = 0; j < r; j++)
paper[i][j] = tmp[r-1-j][i];
swap(r, c);
}
이와 같이 작성할 수 있다.
이때에 이 rotate 함수를 사용할때 이 함수가 어떤식으로 동작하는지는, paper 배열이 최대사이즈에서 조금 더 여유롭게 작성되어있는데,
그때에 그 안에서 r, c 로 씌여있던 것을, c, r 형태로 써서 값들을 옮겨담은뒤에, 그 c, r 형태로 작성한 값들 자체도 서로 값을 바꾸어서
회전하더라도 일관되게 r , c 라는 값으로 다룰 수 있도록 만들어주는 함수이다.
출처: https://www.youtube.com/watch?v=jZwf4OPlhtk&ab_channel=BaaarkingDog
Comments, Trackbacks