해당 글은 https://8iggy.tistory.com/104 를 참고하여 썼습니다. DFS 진짜 어렵다... 너무 어렵다. 그래도 해야겠지. 가봅시다. DFS는 그래프 탐색을 할 때 사용하는 알고리즘으로, Depth First Search의 줄임말이다. 깊이 우선 탐색을 뜻하며 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. DFS는 stack이나 재귀함수를 이용해서 구현할 수 있다. DFS의 동작과정은 다음과 같다. 1. 탐색 시작 노드를 스택에 삽입하고 방문처리를 한다. 2. 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접노드를 스택에 넣고 방문처리를 한다. 방문하지 않은 노드가 없다면 스택에서 최상단 노드를 꺼낸다. 3. 2의 과정을 더 이상 수행할 수 없을 때까지 반복..
알고리즘
DP 도대체 이름이 왜 동적 계획법인지 궁금한 알고리즘이다. 지금까지 봤을 때는 점화식 세우기가 핵심인 알고리즘인 거 같다. 동적 계획법이란 최적화 이론의 기술로 특정 범위까지의 값을 구하기 위해 그것과 다른 범위까지의 값을 이용하여 효율적으로 값을 구하는 알고리즘 설계방법이다. 문제를 부분 문제로 나누어 각 부분 문제의 답을 계산하고, 이 계산한 결과값을 이용해 원래 문제의 답을 산출한다. 연산 횟수를 기가 막히게 줄여주며 이에 따라 시간복잡도가 개선되는 장점을 가지고 있다. DP를 적용하기 위한 2가지 조건 동적 프로그래밍에 대해 찾아보는데 공통점이 여럿 있었다. DP를 사용하기 위해서는 두 가지 조건이 충족되어야 한다는 것이다. 1. 최적 부분 구조 - 전체 문제의 답을 부분 문제의 답을 이용하여 ..