~cpp //maze 최단경로일필요는 없음 #include <stdio.h> #include <stdlib.h> void input(); void process(int x,int y); void output(); int print[100][2],cnt,finish_x,finish_y; int data[51][51]; void main() { system("cls"); input(); process(1,1); } void input() { FILE *fp=fopen("maze.txt","rt"); fscanf (fp,"%d %d",&finish_x,&finish_y); for (int i=1;i<=finish_x;i++){ for (int j=1;j<=finish_y;j++){ fscanf (fp,"%d",&data[i][j]); } } fclose(fp); } void process(int x,int y) { int dx[8]={-1,-1,-1,0,0,1,1,1},dy[8]={-1,0,1,-1,1,-1,0,1}; if (x==finish_x && y==finish_y) { output(); exit(-1); } for (int i=0;i<8;i++) { if (!data[x+dx[i]][y+dy[i]] && x+dx[i]>=1 && x+dx[i]<=finish_x && y+dy[i]>=1 && y+dy[i]<=finish_y){ data[x+dx[i]][y+dy[i]]=1; print[cnt][0]=x+dx[i]; print[cnt++][1]=y+dy[i]; process(x+dx[i],y+dy[i]); data[x+dx[i]][y+dy[i]]=0; cnt--; } } } void output() { printf ("1,1\n"); for (int i=0;i<cnt;i++) { printf ("%d,%d\n",print[i][0],print[i][1]); } }