본문 바로가기

DFS4

[프로그래머스] Lv3 문제풀이2(feat. JAVA) 야근 지수 import java.util.*; class Solution { public long solution(int n, int[] works) { long answer = 0; Arrays.sort(works); long[] cnt = new long[works[works.length-1] + 1]; long sum = 0; for(int a : works) { sum += a; cnt[a]++; } if(sum 1; i--) { if(cnt[i] < n) { cnt[i-1] += cnt[i]; n -= cnt[i]; cnt[i] = 0; } else { cnt[i] -= n; cnt[i-1] += n; n = 0; break; } } if(n!=0) cnt[1] -= n; for(int i = .. 2023. 10. 6.
[알고리즘]그래프3 - DFS(feat. Java) DFS란? DFS란 그래프를 순회하는 알고리즘 중 하나이다. Depth-First Search의 줄임말로 깊이 우선 탐색이라고 한다. 이름에서 알 수 있듯이 연결된 노드(정점 : vertex)를 따라서 계속 방문을 한 후에 더 이상 연결된 노드들이 없을 때 그 전 노드로 되돌아가고 다시 연결된 노드를 따라서 탐색을 한다. 예를 들어 다음 그림에서, 1번 노드에서 DFS를 사용하여 탐색을 진행한다고 한다면, (연결된 노드가 여러개라면 오름차순으로 방문한다고 가정) 1번 노드 방문 후 2, 3번 노드 중 2번으로 방문 2번 노드 방문 후 6, 8번 노드 중 6번으로 방문 6번 노드 방문 후 더 이상 연결된 노드가 없으므로 2번으로 돌아감 2번 노드에서 방문하지 않았던 8번으로 방문 8번 노드 방문 후 연결된.. 2023. 9. 21.
[알고리즘] 그래프1 - 그래프란? 그래프란? 그래프는 정점(노드, Vertex)과 그 사이를 잇는 간선(Edge)로 이루어져 있다. G = (V, E)는 정점의 집합 V와 간선의 집합 E라고 할 때, 그래프 G는 V와 E의 집합 (V, E)라는 의미이다. 위의 그림에서, V(G) = {1, 2, 3, 4, 5}이고, E(G) = {(1, 2), (3, 1), (3, 2), (4, 1), (5, 2), (5, 4)} 이다. 그래프의 종류 무방향 그래프 이름 그대로 간선에 방향이 없는 그래프이다. 그렇기 때문에 정점 v와 정점 w를 잇는 간선 (v, w)가 있다고 하면 (w, v)도 같은 간선이 되는 것이다. 그러므로 정점이 n개일 때 무방향 그래프가 가질 수 있는 최대 간선 수는 n(n-1)/2개 이다. 방향 그래프 간선에 방향이 있는 그.. 2023. 9. 21.
[백준] 자바 문제 풀이 1939 : 골드3 import java.util.*; import java.io.*; public class Main { static int n, m; static int start, end; static int left = 0, right = 0; static int ans; static List[] board = new ArrayList[10001]; static boolean[] visited = new boolean[10001]; static class Graph { int dest; int weight; Graph(int dest, int weight) { this.dest = dest; this.weight = weight; } } static boolean dfs(int s, int e, int w) { vi.. 2023. 9. 21.
728x90
반응형