[C++] 프로그래머스 타겟넘버 DFS/BFS
·
Algorithm/Programmers
#include #include #include using namespace std; int result = 0; void DFS(vector numbers, int target, int sum, int count); int solution(vector numbers, int target) { DFS(numbers, target, 0, 0); int answer = result; return answer; } void DFS(vector numbers, int target, int sum, int count) { if(count == numbers.size()) { if(sum == target) result++; return; } DFS(numbers, target, sum + numbers[count..
[C++] 백준 1325 효율적인 해킹 BFS, DFS
·
Algorithm/Baekjoon
#include #include #include #include #include #define MAX_COM 10001 using namespace std; vector node[MAX_COM]; bool visited[MAX_COM]; vector counts; int BFS(int curr); bool Sorted(pair x, pair y); int main() { ios::sync_with_stdio(false); int N, M, maxCounts = 0; cin >> N >> M; for (int i = 0; i > temp[0] >> temp[1]; node[temp[1]].push_back(temp[0]);//단방향 리스트를 사용한다. ..
[C++] 백준 1012 유기농 배추 DFS, BFS
·
Algorithm/Baekjoon
#include #include #include #define MAX_LENGTH 50 using namespace std; bool node[MAX_LENGTH][MAX_LENGTH]; bool visited[MAX_LENGTH][MAX_LENGTH]; int width, height, counts, result; void DFS(int x, int y); int main() { int T; cin >> T; for (int i = 0; i > width >> height >> counts; result = 0; memset(node, NULL, sizeof(node)); memset(visited, NULL, sizeof(visited)); for (int j = 0; ..
[C++] 백준 2606 바이러스 DFS, BFS
·
Algorithm/Baekjoon
#include #include #include #define COMMAX 101 using namespace std; int netNum, comNum; vector node[COMMAX]; bool visited[COMMAX]; int counts = 0; void BFS(int curr); int main() { ios::sync_with_stdio(false); cin >> comNum; cin >> netNum; for (int i = 0; i > temp[0] >> temp[1]; node[temp[0]].push_back(temp[1]); node[temp[1]].push_back(temp[0]); } BFS(1); cout
[C++] 백준 1697 숨바꼭질 BFS
·
Algorithm/Baekjoon
#include #include #define MAX_LOCATION 100001 using namespace std; int K, N; int visited[MAX_LOCATION]{false}; void BFS(int curr); int main() { ios::sync_with_stdio(false); cin >> N >> K; BFS(N); } void BFS(int curr) { queue q; q.push({ curr, 0 }); visited[curr] = true; while (!q.empty()) { int currNode = q.front().first; int currSec = q.front().second; q.pop(); if (currNode == K) { cout currNod..
너비 우선 탐색 BFS
·
Algorithm/Memo
bool BFS(int cost) { queue q; q.push(start); visited[start] = true; while (!q.empty()) { int currNode = q.front();//현재 너비에 있는 것을 순차적으로 검색 q.pop();//검색한 곳은 삭제 if (currNode == finish) return true; for (int i = 0; i 4 2 -> 3, 2 -> 5 3 -> 6, 5 -> 6 ..