• º» °Ô½ÃÆÇÀº ¼ö¾÷½Ã°£¿¡ Çлýµé ½Ç½ÀÀ» À§ÇÑ °Ô½ÃÆÇÀÔ´Ï´Ù.
  • º» °Ô½ÃÆÇ¿¡ ¿Ã¶ó¿Í ÀÖ´Â ÇÁ·Î±×·¥Àº ´ëºÎºÐ ¿Ã¹Ù¸£Áö ¾ÊÀº ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
        ÀÓÀç¸ð
        Å¥¸¦ ÀÌ¿ëÇÑ ³Êºñ ¿ì¼± Ž»ö



    include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #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;

    // Å¥ ÃʱâÈ­ ÇÔ¼ö
    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* s, 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(s, 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");
        }
    }

    void Queue_print(QueueType* q) {
        int i;
        printf("°æ·Î ");
        for (i = q->rear; i > 0; i--)
            printf("-> (%01d,%01d) ", q->data[i].r, q->data[i].c);

    }

    int main(void)
    {
        int r, c;
        QueueType s;

        init_queue(&s);
        here = entry;
        while (maze[here.r][here.c] != 'x') {
            r = here.r;
            c = here.c;
            maze[r][c] = '.';
            maze_print(maze);

            push_loc(&s, r - 1, c);
            push_loc(&s, r + 1, c);
            push_loc(&s, r, c - 1);
            push_loc(&s, r, c + 1);
            if (is_empty(&s)) {
                printf("½ÇÆÐ\n");
                return;
            }
            else
                here = dequeue(&s);
        }

        printf("¼º°ø\n");
        Queue_print(&s);
        return 0;
    }

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

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