만족은 하되 안주하지는 말자

기록해야 기억한다

파이썬 DFS 2

[python] 백준 1260번: DFS와 BFS

www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 곧 있을 LG 코딩테스트에 앞서 기본기 복습 겸, 가장 기본적인 DFS / BFS 문제를 풀어보았다. 특징은 DFS 는 재귀함수가 아니라 stack 을 활용해 만들었다는 것. (기본적으로 같은 반복횟수면 시스템상 재귀방식보다 stack 이 속도가 빠르다고 한다) 그리고 기존엔 visited 배열을 True Or False 로 했다면 여기선 visited 에 방문한 노드의 번..

[python] 백준 18428번: 감시 피하기

내가 생각한 분류 DFS 아이디어 1. 장애물을 놓을 수 있는 공간을 리스트로 저장해놓는다. 2. combination 을 활용해, 장애물을 놓을 수 있는 위치의 조합별로 확인한다. 3. (2) 에서 정한 장애물의 위치대로 전체 지도에 장애물을 배치한다. 4. check 함수를 통해 각 경우별로 "선생님"에게 잡히는 "학생"이 없는지를 확인한다. 5. 선생님의 위치마다 동서남북 4방향으로 "T"를 채워넣는다. (장애물이 없는경우) 6. 다 채웠으면 (DFS가 끝나면) 각 학생의 위치의 board 가 "T"인지 "S" 인지를 확인해 "S"가 아닌 경우 1명이라도 선생님에게 잡힌 경우니 이 장애물 배치는 False 다. 7. 모든 장애물 배치에 대해 "모든 학생이 감시를 피하는 경우" 가 없다면 "NO"를 ..