~cpp #include <iostream> using namespace std; int main() { int M,N,i,j; cout << "과 기 : "; cin >> M >> N; int **board = new int *[M]; for (i=0; i<M; i++) board[i] = new int [N]; for (i=0; i<M; i++) for (j=0; j<N; j++) board[i][j] = 0; cout << " : "; int start_x, start_y; cin >> start_x >> start_y; cout << " : "; char ch[100]; cin.get(); cin.getline(ch,100); int num = strlen(ch); char *A = new char [num+1]; for (i=0; i<num+1; i++) A[i] = '0'; int *route = new int[num+1]; for (i=0; i<num+1; i++) { A[i] = ch[i]; route[i] = A[i] - 48; } int walker_x[8] = {0,1,1,1,0,-1,-1,-1}; int walker_y[8] = {-1,-1,0,1,1,1,0,-1}; int next_x = start_x - 1, next_y = start_y - 1; i=0; int check = 1; int count = 0; while (A[i]!='\0' && check > 0) { check = 0; next_x = next_x + walker_x[route[i]]; next_y = next_y + walker_y[route[i]]; if (next_x == -1) next_x = N-1; if (next_x == N) next_x = 0; if (next_y == -1) next_y = M-1; if (next_y == M) next_y = 0; board[next_y][next_x]++; count++; i++; for (int a=0; a<M; a++) { for (int b=0; b<N; b++) { if(board[a][b] == 0) check++; } } } cout << " " << count << " .\n\n"; for (i=0; i<M; i++) { for (j=0; j<N; j++) { cout << board[i][j] << " "; } cout << endl; } return 0; }