dfs6
-
[백준] 4963 - 섬의 개수
문제 링크https://www.acmicpc.net/problem/4963느낀 점아주 기본 적인 dfs 구현 문제!import syssys.setrecursionlimit12345678answer = []while True: w, h = mapint,sys.stdin.readline(.split) if w == 0 and h == 0: break else: count = 0 maps = [] for _ in rangeh: maps.appendlist(sys.stdin.readline(.split)) d = [−1,0, −1,−1, −1,1, 0,−1, 0,1..
2024.06.26 -
[백준] 2644 - 촌수계산
문제 링크https://www.acmicpc.net/problem/2644느낀 점이 문제도 아주 기초적인 dfs 구현 문제 하지만, 이것도 뒤로 돌아가는 과정을 없애주면서 진행해주어야해서 그 부분을 신경써주어야함!import sysimport collectionssys.setrecursionlimit12345678def dfsstartV: global visited global count global final_count queue.appendstartV visited.appendstartV while queue: q = queue.popleft for v in graph[q]: if v not in visit..
2024.06.26 -
[백준] 2606 - 바이러스
문제 링크https://www.acmicpc.net/problem/2606느낀 점아주 기초적인 dfs 활용 구현 문제 이런 것들은 바로바로 풀 수 있을 만큼 연습하자!import sysimport collectionssys.setrecursionlimit12345678def dfsstartV: global visited queue.appendstartV visited.appendstartV while queue: q = queue.popleft for v in graph[q]: if v not in visited: dfsvgraph = collections.defaultdictlistqu..
2024.06.26 -
[백준] 1189 - 컴백홈
문제 링크https://www.acmicpc.net/problem/1189느낀 점기본적인 구현 문제를 많이 연습해야한다는 것을 느꼈음. 그리고 지나가면서 올렸던 숫자를 모두 제자리로 원상 복구 시켜줘야 다른 경우에서도 쓸 수 있으므로 그 과정을 신경 써주어야했음!import syssys.setrecursionlimit12345678R, C, K = mapint,sys.stdin.readline(.split)count = 0maps = []for _ in rangeR: maps.appendlist(sys.stdin.readline(.strip))d = [−1,0, 0,−1, 0,1, 1,0]maps[R-1][0] = 1def dfsi,j: glo..
2024.06.26 -
[백준] 24480 - 깊이 우선 탐색 2
문제 링크https://www.acmicpc.net/problem/24480import sysimport collectionssys.setrecursionlimit12345678def dfsstartV: global visited_order queue = collections.deque[startV] visited[startV] = visited_order while queue: q = queue.popleft for v in graph[q]: if visited[v] == 0: visited_order += 1 visited[v] = visited_order ..
2024.06.26 -
[백준] 24479 - 깊이 우선 탐색 1
문제 링크https://www.acmicpc.net/problem/24479import sysimport collectionssys.setrecursionlimit12345678def dfsstartV: global visited_order queue = collections.deque[startV] visited[startV] = visited_order while queue: q = queue.popleft for v in graph[q]: if visited[v] == 0: visited_order += 1 visited[v] = visited_order ..
2024.06.26