본문 바로가기
반응형

cpp153

[알고리즘] c++ cpp 숨바꼭질 시리즈 (숨바꼭질3) 포인트 1. bfs() 를 잘 알고 있는가? 2. bfs는 모든 노드를 지날때 같은 가중치를 같는 노드만 탐색을 할 수 있다. 이에 dequeue 를 사용을 하여 가중치를 다르게 처리를 하여 bfs 를 진행할 수 있도록 한다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. #include #include #include using namespace std; int n, m; int dist[100001]; void bfs() { // bfs 는 모든 노드로 가는 가중치가 1인 경우나 같은 경우이다. // 지금 문제는 하나의 가중치가 다름으로 다르게 처리를 해야 한다. deque q; q.push_back(n); dist[n] = 0; while (!q.empty()) { int x = q.fr.. 2020. 10. 4.
[알고리즘] c++ cpp 숨바꼭질 시리즈 (숨바꼭질2) 포인트 1. BFS (너비 우선 탐색) 를 이해를 하고 있는가? 2. 숨바꼭질 2에서 중요한 점은 가장 빠른 경우의 수를 세는 것이다. 기존 BFS () 는 최초 도착 만을 세기 때문에 다른 방식으로 처리를 해주어야 한다. #include #include #include using namespace std; #define MAX 100000 + 1 int cnt; int time; bool visited[MAX]; int n, m; int second() { queue q; q.push(make_pair(n, 0)); visited[n] = 1; while (!q.empty()) { int x, xtime; tie(x, xtime) = q.front(); q.pop(); visited[x] = 1; //.. 2020. 10. 4.
[알고리즘] c++ cpp 숨바꼭질 시리즈 (숨바꼭질1) 포인트 1. BFS (너비 우선 탐색) 2. 기본적인 것들은 똑같고 조건들만 다름을 이해하자 #include #include using namespace std; #define MAX 100001 bool visited[MAX]; int n, m; int bfs() { queue q; int time = 0; q.push(n); while (1) { int size = q.size(); for (int i = 0; i 0 && !visited[n - 1]) { //범위체크 && 방문하지 않았거나 q.push(n - 1); visited.. 2020. 10. 4.
[알고리즘] c++ cpp H-Index 포인트 1. 시테이션을 구하는 방법 2. 정렬 사용후 사이즈 비교를 하여 H-Index 를 결정해준다, #include #include #include using namespace std; int solution(vector citations) { int answer = 0; sort(citations.begin(), citations.end()); //정렬 for (int i = 0; i < citations.size(); i++) { if (citations.size() - i 2020. 9. 26.
반응형