일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 분할정복
- 그래프 탐색
- 그리디
- 다이나믹 프로그래밍
- 트리
- 다시
- 수학
- 우선순위큐
- 구현
- 재귀
- 누적합
- BFS
- 백트래킹
- DP
- 다이나믹프로그래밍
- MST
- 투포인터
- 그래프 이론
- 자료구조
- 다익스트라
- 크루스칼
- join
- 서브쿼리
- 브루트포스
- GROUP BY
- 해시
- 플로이드-워셜
- 에라토스테네스의 체
- 시뮬레이션
- DFS
- Today
- Total
목록트리 (5)
기록하고 까먹지 말기

날짜 : 2023. 10. 08 사용 언어 : python 문제 코드 def solution(info, edges): visited = [False] * len(info) # 방문처리 res = list() visited[0] = True res.append(1) def dfs(sheep, wolf): if sheep > wolf: res.append(sheep) else: return for start, end in edges: if visited[start] and not visited[end]: # 부모노드 방문 완료, 자식노드 탐색 visited[end] = True # 방문처리 if info[end] == 0: # 자식이 양 dfs(sheep + 1, wolf) else: dfs(sheep, w..

날짜 : 2023. 06. 27 사용 언어 : python 문제 코드 import sys def inorder(subtree, depth): # print(subtree, depth) if len(subtree) == 0: return mid = int(len(subtree) // 2) if depth < (K-1) : inorder(subtree[:mid], depth + 1) res[depth].append(subtree[mid]) if depth < (K-1) : inorder(subtree[mid+1:], depth + 1) return K = int(sys.stdin.readline()) # 최종 깊이 tree = list(map(int, sys.stdin.readline().split())) ..

날짜 : 2023. 06. 19 사용 언어 : python 문제 코드 import sys sys.setrecursionlimit(10**9) def search(ro, l, r): if len(l) > 0: left = list() right = list() for i in range(1, len(l)): if l[i] 0: left = list() right = list() for i in range(1, len(r)): if r[i] < r[0]: left.append(r[i]) else: right.append(r[i]) search(r[0]..

날짜 : 2023. 05. 18 사용 언어 : python 문제 코드 import sys sys.setrecursionlimit(int(10e6)) def dfs(now, cost): # 현재 노드, 1부터 현재 노드까지의 cost for i in graph[now]: # now 노드와 연결된 노드, now ~ 노드까지의 거리 node, c = i[0], i[1] if not visited[node]: # 방문하지 않은 경우 visited[node] = True # 방문처리 dist[node] = (cost + c) dfs(node, cost + c) return v = int(sys.stdin.readline()) # 정점의 개수 graph = [[] for _ in range(v + 1)] dist ..

날짜 : 2023. 03. 14 사용 언어 : python 문제 코드 import sys sys.setrecursionlimit(10**9) n = int(sys.stdin.readline()) graph = [[] for _ in range(n + 1)] def dfs(now, d): # 노드번호, 길이 for i in graph[now]: if dist[i[0]] == -1: # 길이 최신화 x dist[i[0]] = d + i[1] dfs(i[0], d + i[1]) for _ in range(n - 1): a, b, c = map(int, sys.stdin.readline().split()) # 트리 입력 graph[a].append([b, c]) graph[b].append([a, c]) # 1..