[알고리즘] 깊이 우선 탐색(DFS, Depth-First Search)
·
컴퓨터 과학/알고리즘
너비 우선 탐색이 시작 정점에서 시작하여 점차 탐색 범위를 넓혀 나가는 방식이라면, 깊이 우선 탐색은 시작 정점에서 시작하여 특정 경로를 따라 가능한 멀리 있는 정점을 재귀적으로 먼저 방문하는 방식이다.깊이 우선 탐색 깊이 우선 탐색은 시작 정점을 경계에 추가하는 것으로 시작한다. 너비 우선 탐색의 그림 예를 변형해서 가져왔다. 하나의 지점에서 시작하여 가능한 멀리 있는 정점에 도달하고 재귀하는 방식을 가진다.구현 깊이 우선 탐색은 두 가지의 코드를 사용할 수 있다. 1. Stack를 이용한 깊이 우선 탐색 2. 재귀 함수를 이용한 깊이 우선 탐색 이 두 가지가 있다. (1) #include #include #include using namespace std; bool visited[9]; vector ..
Programmers / 피로도 / C++
·
코딩테스트(프로그래머스 & 백준)/프로그래머스-C++
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 피로도 (2단계) 문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 나의 풀이 #include #include #define MAX 8 using namespace std; int result = 0; bool visited[MAX] = {false}; int dfs(int cnt, int k, vector &dungeons) { if (cnt > result) resu..
Programmers / 할인 행사 / C++
·
코딩테스트(프로그래머스 & 백준)/프로그래머스-C++
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 할인 행사 (2단계) 문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 나의 풀이 #include #include #include using namespace std; int solution(vector want, vector number, vector discount) { int answer = 0; map wantcount; for (int i = 0; i < wa..
김치바보
'C++' 태그의 글 목록