Taene's
[C++] direct 기법 본문
- 보통 탐색 알고리즘에서 상하좌우나 대각선 등의 방향을 탐색해야할 때 사용한다.
- 아래 예시는 dirX,dirY 배열을 만들고 반복문을 돌리면서 newY, newX를 만들어 재귀함수에 다시 넣는 경우이다.
bool arr[51][51] = { false };
bool visit[51][51] = { false };
int dirX[4] = { 0,0,-1,1 };
int dirY[4] = { -1,1,0,0 };
int m, n, k;
void dfs(int y, int x)
{
visit[y][x] = 1;
for (int i = 0; i < 4; i++)
{
int newY = y + dirY[i];
int newX = x + dirX[i];
if (arr[newY][newX] == 1 && visit[newY][newX] == 0
&& (newY >= 0 && newY < n) && (newX >= 0 && newX < m))
{
dfs(newY, newX);
}
}
}
'C++ 개념 공부 > 알고리즘' 카테고리의 다른 글
[C++] 정렬 - 버블 정렬(Bubble Sort) (0) | 2024.04.02 |
---|---|
[C++] 정렬 - 선택 정렬(Selection Sort) (0) | 2024.04.02 |
[C++] 비트 마스킹(비트 연산) (1) | 2024.02.29 |
[C++] 재귀 함수와 그래프(길찾기, 경로 탐색) (1) | 2023.10.31 |
[C++] DP(Dynamic Programming) 동적 계획법 (0) | 2023.09.04 |