• º» °Ô½ÃÆÇÀº ¼ö¾÷½Ã°£¿¡ Çлýµé ½Ç½ÀÀ» À§ÇÑ °Ô½ÃÆÇÀÔ´Ï´Ù.
  • º» °Ô½ÃÆÇ¿¡ ¿Ã¶ó¿Í ÀÖ´Â ÇÁ·Î±×·¥Àº ´ëºÎºÐ ¿Ã¹Ù¸£Áö ¾ÊÀº ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
        À̱âÁ¤
        Å¥¸¦ ÀÌ¿ëÇÑ ³Êºñ ¿ì¼± Ž»ö BFS ±¸Çö
    practice7-2.c [3 KB]    



    //³Êºñ ¿ì¼± Ž»ö.c#include #include #include #define MAZE_SIZE 6#define QUEUE_SIZE 100 typedef struct { short r; short c;} element; typedef struct { element data[QUEUE_SIZE]; int front, rear;} QueueType; //Å¥: ³Êºñ ¿ì¼± Ž»ö(BFS), ½ºÅÃ: ±íÀÌ ¿ì¼± Ž»ö(DFS)void init_queue(QueueType *q) { q->front = q->rear = 0;} int is_empty(QueueType *q) { return (q->front == q->rear);} int is_full(QueueType *q) { return ((q->rear + 1) % QUEUE_SIZE == q->front);} void enqueue(QueueType *q, element item) { if (is_full(q)) { fprintf(stderr, "Å¥ Æ÷È­ ¿¡·¯\n"); return; } q->rear = (q->rear + 1) % QUEUE_SIZE; q->data[q->rear] = item;} element dequeue(QueueType *q) { if (is_empty(q)) { fprintf(stderr, "Å¥ °ø¹é ¿¡·¯\n"); exit(1); } q->front = (q->front + 1) % QUEUE_SIZE; return q->data[q->front];}element here = { 1,0 }, entry = { 1,0 };char maze[MAZE_SIZE][MAZE_SIZE] = { { '1', '1', '1', '1', '1', '1' }, { 'e', '0', '1', '0', '0', '1' }, { '1', '0', '0', '0', '1', '1' }, { '1', '0', '1', '0', '1', '1' }, { '1', '0', '1', '0', '0', 'x' }, { '1', '1', '1', '1', '1', '1' }};void push_loc(QueueType *q, int r, int c) { if (r < 0 || c < 0) return; if (maze[r][c] != '1' && maze[r][c] != '.') { element tmp; tmp.r = r; tmp.c = c; enqueue(q, tmp); }}void maze_print(char maze[MAZE_SIZE][MAZE_SIZE]) { printf("\n"); for (int r = 0; r < MAZE_SIZE; r++) { for (int c = 0; c < MAZE_SIZE; c++) { printf("%c", maze[r][c]); } printf("\n"); }}int main(void) { int r, c; QueueType q, qm; init_queue(&q); init_queue(&qm); here = entry; while (maze[here.r][here.c] != 'x') { r = here.r; c = here.c; maze[r][c] = '.'; maze_print(maze); push_loc(&q, r - 1, c); push_loc(&q, r + 1, c); push_loc(&q, r, c - 1); push_loc(&q, r, c + 1); if (is_empty(&q)) { printf("½ÇÆÐ\n"); return -1; } else here = dequeue(&q); } printf("¼º°ø\n"); return 0;}

      µî·ÏÀÏ : 2024-10-29 [14:41] Á¶È¸ : 239 ´Ù¿î : 102   
     
    ¡â ÀÌÀü±Û11ÁÖÂ÷ ½Ç½À
    ¡ä ´ÙÀ½±ÛÅ¥¸¦ ÀÌ¿ëÇÑ ³Êºñ ¿ì¼± Ž»ö BFS ±¸Çö
    Çлý½Ç½À °Ô½ÃÆÇ
    ¹øÈ£ ¨Ï Á¦ ¸ñ À̸§ Á¶È¸ µî·ÏÀÏ
    108 ¿äûÇϽŠÀÚ·áÀÔ´Ï´Ù. ÇÁ·Î±×·¡¹Ö¾ð¾î Çѹμ­ 14 03-28
    107 15ÁÖÂ÷ ½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î À̱âÁ¤ 69 12-10
    106 ¦¦❶ 15ÁÖÂ÷ ½Ç½À (¿À·ù ¼öÁ¤) ÇÁ·Î±×·¡¹Ö¾ð¾î Á¤¼ºÈÆ 79 12-10
    105 °ÔÀӽǽÀ ÇÁ·Î±×·¡¹Ö¾ð¾î . 99 12-10
    104 ¦¦❶ °ÔÀӽǽÀ (¿À·ù ¼öÁ¤) ÇÁ·Î±×·¡¹Ö¾ð¾î Á¤¼ºÈÆ 75 12-10
    103 ÀüÈ­¹øÈ£ ¼öÁ¤ÇÏ´Â ÇÁ·Î±×·¥ ÇÁ·Î±×·¡¹Ö¾ð¾î ÀÓÀç¸ð 96 12-03
    102 14ÁÖÂ÷ ½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î Â÷»ó¹Î 90 12-03
    101 °áÁ¤ Æ®¸® ÀڷᱸÁ¶ À̱âÁ¤ 137 11-26
    100 ¾ß±¸½Ç½ÀN ÇÁ·Î±×·¡¹Ö¾ð¾î ÃÖÇö¿ì 184 11-19
    99 ¾ß±¸½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î ¹éÀμ­ 161 11-19
    98 11ÁÖÂ÷ ½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î ÀüÈ£¼º 174 11-12
    97 Å¥¸¦ ÀÌ¿ëÇÑ ³Êºñ ¿ì¼± Ž»ö ÇÁ·Î±×·¡¹Ö¾ð¾î ÀÓÀç¸ð 245 10-29
    96 Å¥¸¦ ÀÌ¿ëÇÑ ³Êºñ ¿ì¼± Ž»ö BFS ±¸Çö ÀڷᱸÁ¶ À̱âÁ¤ 239 10-29
    95 Á¶°Ç¹® µµÀü°úÁ¦1 ÇÁ·Î±×·¡¹Ö¾ð¾î ÃÖÇö¿ì 308 04-12
    94 4¿ù12ÀÏ ¼¼¼ö ºñ±³ ½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î À±¿µ¹Î 294 04-12

    [1][2][3][4][5][6][7][8]