01-29 07:13
Recent Posts
Recent Comments
관리 메뉴

너와나의 관심사

BFS 알고리즘 본문

카테고리 없음

BFS 알고리즘

벤치마킹 2018. 1. 1. 02:12

#include <stdio.h>
#pragma warning(disable : 4996)

void init(){
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            temp[i][j] = map[i][j];
}


int check(int x, int y, int n){
   
    temp[y][x] = 0 ;
   
    if (x -1 >= 0 && temp[y][x - 1] > n)
        check(x - 1, y, n);

    if (x+1 < N && temp[y][x + 1] > n)
        check(x + 1, y, n);

    if (y -1 >= 0 && temp[y-1][x] > n)
        check(x, y -1, n);

    if (y +1 <N &&temp[y+1][x] > n)
        check(x, y + 1, n);


    return 1;
   
}
int run(void){

    int max_val;
    int ret = 1;

    for (int n = 1; n < MAX_NUM; n++){
       
        init(); // temp value init
        max_val = 0;
        for (int i = 0; i < N; i++){
            for (int j = 0; j < N; j++){
                if (temp[i][j] > n)
                    max_val += check(j, i, n);
            }
        }

        if (max_val == 0)
            break;

        ret = BIG(max_val, ret);
    }

    return ret;
}



Comments