Algorithm Team Note
-
[Algorithm Team Note] rotate (배열 회전하기)Algorithm Team Note 2021. 3. 14. 20:43
배열을 회전하는 경우가 많다 NXM 크기의 배열을 시계방향으로 90도 회전하는 경우 회전된 (x,y) 좌표는 회전되기 이전 (N-1-y, x) 좌표에서 온 것이다 vector rotate(vector b) { int bx = b.size(); int by = b[0].size(); vector tmpb; for (int i = 0;i < by;i++) { vector tmpv; for (int j = 0;j < bx;j++) { tmpv.push_back(b[bx-1-j][i]); } tmpb.push_back(tmpv); } return tmpb; }
-
[Algorithm Team Note] tilt (배열 기울이기)Algorithm Team Note 2021. 3. 14. 20:38
배열을 기울이기 위해 회전하기, 한 방향으로 기울이기 두 가지 함수만 작성하면 된다 만약 배열을 위로 기울이려고 하면 시계방향으로 세번 회전, 왼쪽으로 기울이기 한번, 시계방향으로 한번 회전하면 된다 vector tilt(vector board, int dir) { for (int i = 0;i < dir;i++) tmp=rotate(tmp); tmp = tiltLeft(tmp); for (int i = 0;i < 4 - dir;i++) tmp = rotate(tmp); return tmp; }