<div>#include <stdio.h></div> <div>#define COLS 17</div> <div>#define ROWS 13</div> <div>#define START_ROW 1</div> <div>#define START_COL 1</div> <div>#define EXIT_ROW 11</div> <div>#define EXIT_COL 16</div> <div>#define MAX 50</div> <div><br></div> <div>int maze[ROWS][COLS] = {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,0,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,1,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,0,1,1,0,0,0,0,1,1,1,1,0,0,1,1,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,1,1,0,1,1,1,1,0,1,1,0,1,1,0,0,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,1,1,0,1,0,0,1,0,1,1,1,1,1,1,1,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,0,0,1,1,0,1,1,1,0,1,0,0,1,0,1,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,0,0,1,1,0,1,1,0,1,1,1,1,1,0,1,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,1,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,0,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,0,1,0,0,1,1,1,1,1,0,1,1,1,1,4,1 },</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 } };</div> <div><br></div> <div>typedef struct _coord {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int x;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int y;</div> <div>}coord;</div> <div><br></div> <div>int top = 0;</div> <div>coord stack[MAX];</div> <div>void push(int row,int col) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>top ++;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>stack[top].x = row;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>stack[top].y = col;</div> <div>}</div> <div><br></div> <div>coord pop(coord*stack) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int row;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int col;</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>row = stack[top].x;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>col = stack[top].y;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>maze[row][col] = 2;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return stack[top--];</div> <div>}</div> <div><br></div> <div>void Fprint()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i, j;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (i = 0; i < ROWS; i++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (j = 0; j < COLS; j++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if (maze[i][j] == 1)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("■");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf(" ");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("\n");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div> <div><br></div> <div>void Lprint()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i, j;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (i = 0; i < ROWS; i++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (j = 0; j < COLS; j++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if (maze[i][j] == 1)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("■");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else if (maze[i][j] == 2)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("□");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else if (maze[i][j] == 3)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("◎");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else if (maze[i][j] == 4)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("★");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf(" ");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("\n");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div> <div>void check(coord*stack)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int j;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>coord temp;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int row = stack[top].x, col = stack[top].y;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (i = -1; i < 2; i++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (j = -1; j < 2; j++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if (maze[row + i][col + j] == 0) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>row = row + i; col = col + j;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>push(row,col);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>temp = pop(stack);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>stack[top].x = temp.x;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>stack[top].y = temp.y;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div>}</div> <div>int main()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Fprint();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>stack[top].x = START_ROW;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>stack[top].y = START_COL;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("\n\n");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>while (1) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>check(stack);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if (stack[top].x == (EXIT_ROW - 1) && stack[top].y == (EXIT_COL - 1))</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//Lprint();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("%3d %3d", stack[top].x, stack[top].y);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return 0;</div> <div>}</div> <div><br></div> <div>수정하다가 코드가 누더기가 되긴 했는데</div> <div><br></div> <div>스택 0번 방에 출발 지점을 지정해줘서 탑을 0부터 시작했습니다</div> <div>미로 길 찾는데 0이 길이라 0이면 푸쉬에 넣는 걸로 했는데</div> <div>1,1에서 무한루프를 돌더라고요</div> <div>call by address로 값 계속 바꿔 줘보려고 했는데 에러만 나서 못했고</div> <div><br></div> <div><br></div> <div>사실 어디가 어떻게 문제인지를 1시간 째 감도 못 잡고 있어서 </div> <div>이렇게 글올려요..............</div> <div><br></div> <div>하나짜리 스택은 어떻게 다루겠는데</div> <div>좌표 다루려니까 어려워요 ㅜㅜㅜ</div> <div><br></div> <div>도와주세요</div>
<a href="http://imgur.com/yYjX1uf"><img src="http://i.imgur.com/yYjX1uf.jpg" title="source: imgur.com" width="400" height="300" alt="yYjX1uf.jpg"></a>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.