DFS3 [백준 1012 with Java] 유기농 배추 (DFS) https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net dfs 문제를 익히기 위한 문제로 가장 처음 풀었던 유기농 배추 문제이다. dfs, bfs 모두 풀 수 있으니 다음엔 bfs로 푸는 법을 알아보고, 이번 글에서는 dfs에 대한 설명을 적는다. 매 라인 마다 주석으로 설명을 달아서, 처음 dfs를 접하는 사람도 쉽게 이해할 수 있도록 작성해보았다. import java.io.BufferedReader; import java.io.IOException; impo.. 개발/Algorithm 2024. 2. 4. [PS] 코딩테스트에 나오는 완전탐색 문제를 해결하기 위해 확인해야하는 모든 경우의 수를 돌아보는 유형의 문제를 완전탐색 이라고 한다. 굉장히 자주 출제되는 경향이 있으므로 많은 연습을 필요로 하는 유형이다. 완전탐색의 종류로 1. N개 중 중복을 허용 2. N개 중 중복없이 3. M개를 순서있도록 나열 4. M개를 고르기 의 종류로 나눌 수 있다. 완전 탐색은 문제가 요구하는 바에 맞게 재귀 함수를 짤 줄 알아야 한다고 생각한다. 여러 문제를 풀어보면서 다양한 재귀 함수를 짜는 것에 익숙해지는 것이 먼저다. 개발/Algorithm 2023. 7. 31. [Python] 백준 1260번 DFS와 BFS from collections import deque def DFS(graph, root): visited = [] stack = [root] while stack: n = stack.pop() if n not in visited: visited.append(n) if n in graph: temp = list(set(graph[n]) - set(visited)) temp.sort(reverse=True) stack += temp return " ".join(str(i) for i in visited) def BFS(graph, root): visited = [] queue = deque([root]) while queue: n = queue.popleft() if n not in visited: vis.. 개발/Algorithm 2021. 11. 12. 이전 1 다음