ALL
-
자작시
어떻게 생각할까
가뭄 끝 내리는 비를 소나무는 기뻐할까 고요 속 튀어나온 소음을 소나무는 불평할까 푸르름 속 죽어가는 식물을 소나무는 슬퍼할까 길고 긴 세월을 소나무는 어떻게 생각할까
-
자작시
너울
바람에 떠밀려이리저리 휩쓸리고철썩철썩바위와 부딪히고도착한 그곳이모래밭길 뿐이라도괜찮아잔잔한 너울은강인한 파도가 될 거야찬란하게온 세상을 비추는하늘을 품었으니까##2025.5.30 부산대 축제에서 윤하님의 공연을 보고 난 후...
-
알고리즘
BFS
BFS : 그래프 탐색 방식의 일종으로, 너비우선탐색(Breadth First Search) 입니다. 즉, 시작 노드에서 가장 가까운 노드를 우선적으로 탐색하는 알고리즘으로, 왼쪽 그림과 같은 순서로 탐색하는 것을 말합니다.(가까운 노드부터 꼼꼼하게 살피고 먼 노드를 찾아가는 전략) BFS는 이와 같은 트리 구조 뿐만 아니라,모든 그래프에 적용 가능합니다. 예를 들어Graph = {1: [2, 3], 2: [4, 5], 3: [6], 4: [], 5: [], 6: []}이런 그래프가 있을 때, 노드1 부터 탐색을 한다고 하면BFS : 1 -> 2 -> 3 -> 4 -> 5 -> 6 순서로 탐색하게 되는 것입니다. (DFS : 1 -> 2 -> 4 -> 5 -> 3 -> 6) BFS의 장점은 목표..
-
Python
백준 13023 : ABCDE
https://www.acmicpc.net/problem/13023 문제 풀이 흐름 문제를 봤을 때, 깊이 4의 경로가 존재하는지 찾는 거라는 것은 어렵지 않게 생각해낼 수 있었다. 백트래킹 부분에서 어떻게 해야할지 고민을 좀 했는데그냥 직접 손으로 visited 집합을 써보면서 따라가니까 깊이 4인 경로를 못 찾았을 때 노드를 visited에서 제거하면 된다는 걸 발견할 수 있었다. A.import sysinput = sys.stdin.readlinefrom collections import defaultdictsys.setrecursionlimit(10**7)Graph = defaultdict(list)def DFS(start, depth, visited=set()): if dept..
-
알고리즘
DFS
DFS : 그래프 순회 방식의 일종으로, 깊이우선탐색 (Depth First Search) 입니다. 즉, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘으로,예를 들어, 그림과 같은 순서로 탐색하는 것을 의미합니다. DFS는 이와 같은 트리 구조 뿐만 아니라,모든 그래프에 적용 가능합니다. DFS 알고리즘은 모든 가능한 해를 찾는 백트래킹 알고리즘 구현할 때나, 그래프의 사이클을 감지해야 하는 경우 활용하기 좋습니다. DFS는 백트래킹 해야하는 노드들만 저장해놓으면 되므로 BFS에 비해 저장공간의 필요성이 적다는 장점이 있지만, 찾은 해가 최단 경로라는 보장이 없다는 단점이 있습니다. 코딩테스트에서는 탐색을 해야 할 때, 최단 경로를 찾는 문제가 아니라면 DFS를 우선 고려해보는 게 좋습니다. ..