깊이우선탐색 2

[백준] 14502번: 연구소 - Python

https://www.acmicpc.net/problem/14502발상은 쉽지만, 간단하다고 말하기는 어려운 문제입니다.dfs로 풀었는데 python 시간 초과, pypy3 3043ms그래서 조금 정리를 하려고 가져왔습니다.첫 발상은 모든 빈 공간에 벽을 차례차례 세워보고바이러스가 퍼질 공간을 dfs로 확인 한 다음0의 개수를 count해서 max를 출력하면 되지않을까? 입니다.그래서 밑의 코드처럼 구현했습니다.import sysn, m = map(int, sys.stdin.readline().split())data = []temp = [[0] * m for _ in range(n)]for _ in range(n): data.append(list(map(int, sys.stdin.readline()..

[백준] 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 - Python

https://www.acmicpc.net/problem/24479맨날 dfs, bfs 이해하기도 어렵고 복잡해서 싫었는데뭐 이것도 코딩테스트 진짜 자주 나오니까, 그리디보다 자주 나오니까 해야 한다.일단 문제부터 봅시다.보면 간단한 dfs + "방문 순서"를 출력하는 문제입니다.✱참고✱dfs는 구현 방법이 인접 리스트와 인접 행렬 이렇게 2가지가 있습니다. 인접 리스트인접 행렬장점연결 된 관계만 저장하기 때문에 메모리의 낭비를 줄인다모든 관계를 다 저장하기 때문에 연결을 확인하는 속도가 빠르다단점연결을 확인하는 속도가 느리다메모리 낭비가 심하다저는 처음에 간단하게 인접 리스트 방식을 사용해서 구현했습니다.import sysdef dfs(graph, v, visited, answer, rank): ..