Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- moreeffectiveC++
- UELOG
- C++최적화
- 크리티컬섹션
- 스마트포인터
- UE4 커스텀로그
- 람다
- 약참조
- BFS
- 알고리즘
- unorder_map
- 자료구조
- 프로그래머스
- 언리얼엔진구조체
- stl
- 정렬
- 델리게이트
- 언리얼가비지컬렉터
- 강참조
- enumasByue
- 데이터애셋
- 람다사용정렬
- 선택정렬
- dataasset
- UE_LOG
- 정렬알고리즘
- UML관련
- 애셋로드
- C++
- map
Archives
- Today
- Total
기억을 위한 기록들
미로탐색(DFS) 본문
#include <iostream>
using namespace std;
int map[10][10];
int ch[10][10];
int cnt = 0;
int dx[4] = { 1, 0, -1, 0 };
int dy[4] = { 0, 1, 0, -1 };
void D(int x, int y)
{
int xx;
int yy;
if (x == 6 && y == 6)
cnt++;
else {
for (int index = 0; index < 4; index++) //4방향검사
{
xx = x + dx[index]; //4방향 위치
yy = y + dy[index];
if (xx < 0 || xx>6 || yy < 0 || yy>6) //범위 벗어남
continue;
if (map[xx][yy] == 0 && ch[xx][yy] == 0) //갈수 있는위치
{
ch[xx][yy] = 1; //표시
D(xx, yy); // 다음위치
ch[xx][yy] = 0; //표시 해제
}
}
}
}
int main()
{
int i, j;
for (i = 0; i < 7; i++) {
for (j = 0; j < 7; j++) {
scanf("%d", &map[i][j]);
}
}
ch[0][0] = 1;
D(0, 0);
if (cnt == 0) {
cout << -1 << endl;
}
cout << cnt << endl;
return 0;
}
'Coding Test - cpp > DFS' 카테고리의 다른 글
[백준 2644: 촌수계산] - C++ (0) | 2021.01.21 |
---|---|
[백준 11725 : 트리의 부모 찾기] - C++ (0) | 2021.01.21 |
[백준 2606 : 바이러스] - C++ (0) | 2021.01.11 |
특정 수 만들기 (DFS) (0) | 2021.01.08 |
[프로그래머스] lv 2 타겟넘버 [DFS] - C++ (0) | 2020.12.20 |