일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- PyQt
- readingbook
- englishbook
- 코테 대비
- 원서
- MySQL
- dfs
- 백준
- sw expert
- 알고리즘
- 알고리즘 문제
- STUDYENGLISH
- 원서읽기
- D4
- English
- swexpertacademy
- 코테
- 프로그래머스
- nightroutine
- 완전탐색
- BFS
- 삼성
- 원서읽자
- 직무면접
- sw expert academy
- 코테 준비
- 코딩테스트
- the midnight library
- SQL
- 쉬운 알고리즘 문제
- Today
- Total
목록dfs (7)
시나브로
이 문제는 전형적인 DFS/BFS 완전탐색 문제이다. Solution 값을 입력 받는다. 여기서 값이 1인 인덱스를 벡터 stack에 입력한다. 벡터 stack이 빌때까지 while문을 돌면서 dfs 함수를 호출한다. 호출할 때는 새로운 단지를 발견한 것이기에 answer함수에 새로운 단지를 찾았다는 뜻으로 push_back으로 값을 넣어준다. dfs함수에서는 4방향을 보며 1일 경우, 재귀호출을 해준다. => 여기서 유의점은 범위체크이다. 인덱스가 배열을 범위를 넘어서면 무조건 오류가 나기때문에 귀찮더라도 범위체크를 해줘야한다. 재귀호출하면서 집의 갯수를 세야된다. 그렇기에 새로운 집에 방문할때마다 answer의 마지막 요소에 +1를 해준다. 여기서 왜 마지막 요소인가하면, 동시에 여러단지를 검색하지않..
완전탐색[전탐색] 완전탐색은 고려할 수 있는 모든 경우의 수를 탐색하여 적합한지 부적합한지 확인하는 것이다. 이는 모든 경우에 솔류션이 될 수 있지만, 적합한 솔류션은 아닙니다. 왜냐하면 데이터 양이 증가하면 할수록 경우의 수가 많아 한정된 시간에 모든 경우의 수를 탐색할 수 없기 때문입니다. 하지만, 데이터 양이 한정되어 있다면, 완전탐색은 좋은 솔류션이 될 수 있습니다. 깊이 우선 탐색 [ DFS : Depth First Search ] 깊이 우선 탐색은 전탐색을 하는 탐색 방법 중 하나이며, 어떤 상태부터 시작하여 이동이 불가능할 때까지 진행하다가 이동이 불가능하면 바로 전 상태로 돌아오는 것을 반복함으로써 답을 구하는 방식입니다. 구현할 때는 재귀함수를 이용하기 때문에 스택이 사용됩니다. 여기서 ..
DFS/BFS를 이용하는 문제이다. 네트워크가 몇개인지 확인하는 문제로 모든 점을 한바퀴 볼면서 깊이우선탐색을 해주었다. 만약 이전의 점에서 그 점을 방문했는 경우를 제외하고 갯수를 세주면 답이 된다. #include #include using namespace std; int point_list[210]; void dfs(int k,vector A){ for (int i = 0; i < A.size(); i++) { if (A[k][i] == 1&&point_list[i]==0) { point_list[i] = 1; dfs(i, A); } } } int solution(int n, vector computers) { int answer = 0; for (int i = 0; i < computers.si..