BFS, DFS
BFS 구조BFS는 너비 우선 탐색 알고리즘으로 현재 위치에서 상하좌우로 이동합니다. 현재 그림에서는 맨 왼쪽, 맨 위의 위치에서 시작한다고 가정 하였으며 중복해서 방문하진 않으므로 화살표는 맨 오른쪽 맨 아래를 향하도록 표현하였습니다.BFS 코드방향 설정int xp[4] = { 0,1,0,-1 };int yp[4] = { 1,0,-1,0 };이동을 나타내는 배열입니다. 반복문을 통해서 상하좌우로 이동하며 값의 순서는 임의로 해도 됩니다. 위의 코드 같은 경우에는 우하좌상 으로 이동합니다.변수 초기화queue> q;q.push({ 0,0 });visi[0][0] = 1;q에는 현재 x, y의 위치를 담고 있습니다. 첫 시작은 0, 0이며 visi 배열은 방문 여부를 담으며 1이면 미방문 0이면 방문으로 ..
다익스트라
다익스트라 구조다익스트라의 구조를 그림으로 나타내면 위 사진과 같습니다. 각 원은 노드를 의미하며 각 노드에는 번호가 주어집니다. 노드끼리 이어진 화살표는 간선이라고 하는데 그림에선 단방향이며 양방향도 가능하고 노드에서 노드로 이동할때 지불하는 비용을 옆에 숫자로 표시했습니다. 이렇게 주어진 문제에서 예를들면 1번 노드에서 출발하여 6번노드로 갈때 간선을 지나면서 지불하는 비용을 최소로 했을때 나오는 값을 구하는 것이 다익스트라 알고리즘 입니다.초기화int matrix[SIZE][SIZE] = { {0, 2,5,1,inf,inf}, {inf,0,3,2,inf,inf}, {inf,3,0,inf,inf,5}, ..