일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ERD
- JavaScript
- 이분 탐색
- Express.js
- localstorage
- Github
- outer join(외부 조인)
- trie
- 그리디
- 그래프 탐색
- string
- insomnia
- MongoDB
- PROJECT
- 백준 10775번
- map
- HTTP
- MySQL
- Prisma
- router
- branch
- 자바스크립트
- Next
- DP
- html5
- Keys
- pm2
- 트라이
- ccw 알고리즘
- 게임 서버 아키텍처
- Today
- Total
목록그래프 탐색 (2)
dh_0e

그래프 탐색에 대한 이해도만 있으면 쉽게 풀 수 있는 문제대게 bfs로 풀었던데 귀찮아서 dfs로 풀었다.각 열쇠마다 열지 못한 문의 좌표를 저장하는 벡터를 만든 다음, 새로운 열쇠가 나왔을 때 벡터에 저장되어 있는 열지 못했던 문을 다시 탐색하는 방식으로 구현하여 풀었다. #include#include#include#include #includeusing namespace std;char d[101][101];bool vi[101][101], key[27];int doc = 0, x_size, y_size;vector > blocked[27];int f(int x, int y) { if (d[y][x] == '*')return 0; else if (d[y][x] == '$')doc++; else i..

간단한 그래프 탐색 문제로 dfs 구현만 잘하면 쉽게 푸는 문제visit 체크를 해주는 배열에 각 학생들의 상태를 4개로 분리하였다. 아래 코드 기준으로 vi[] 배열에 저장된 학생들의 상태는-1) cycle을 탐색했지만 팀에 들어가지 못한 상태 0) 아직 cycle을 찾아보지 않은 상태 1) cycle을 찾아 팀에 들어간 상태 2) cycle을 찾는 중인 상태로 cycle을 탐색하다 next 학생의 vi에 저장된 값이 2(cycle을 찾는 중인 상태)라면 cycle이 완성된 것이므로 next 값을 return 하여 next 학생이 나올 때 까지의 학생들의 상태를 1로 바꿔주고, next 학생이 나오면 그 다음 학생부턴 0 값을 return 하여 상태를 -1로 바꿔주었다. dfs 풀이#include#in..