목록DFS (8)
개발 무지렁이

모음사전 / DFS ⚓ 🎠. for in 반복문에서 '문자열'도 문자 하나씩 빼올 수 있다. 🎠. python '슬라이싱(slicing)' 방법을 알아야 한다. 🎠. dfs 알고리즘을 구현할 줄 알아야 한다 => '종료조건 + 재귀적 확장' 🎠. '지역 네임스페이스' 내에서 '전역변수의 값의 할당'하는 방법을 알아야 한다 => 'global' vowels = 'AEIOU' cnt = 0 g_word = "" res = 0 def dfs(s): global cnt, res if s == g_word: # print("res:", cnt) res = cnt return cnt += 1 # print(s) # ..

트리의 부모 찾기 🪅 에지리스트를 인접리스트로 구현할 수 있는가 🪅 인접리스트를 루트부터 탐색해가며 parent배열을 완성할 수 있는가 🪅 DFS를 구현할 수 있는가 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.StringTokenizer; public class Main { static List[] tree; static boolean[] isVisited; static int[] parent; public static..

트리 🪅 parent배열을 보고 인접리스트를 구현할 수 있는가 (루트노드 지정) 🪅 트리를 인접리스트로 구현할 수 있는가 🪅 트리의 일부분을 잘라낼 수 있는가 => remove(int index)와 remove(Object obj)의 차이를 알고 있는가 🪅 Leaf Node의 특징을 알고 있는가 => tree[node].size() == 0 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; /** * 백준 1068번 트리 * 입력: * 첫째..

ABCDE 🪅 에지리스트를 인접리스트로 구현할 수 있는가 🪅 반복동작을 수행할때마다 전의 동작이 다음 동작에 영향을 미치지 않도록 초기화해 주었는가 🪅 flag 변수를 용도에 맞게 사용할 수 있는가 🪅 모든 경로 탐색에 필요한 백트래킹을 할 줄 아는가 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.StringTokenizer; /** * 백준 13023번 ABCDE * * 입력: * 첫째 줄에 사람의 수 N (5 ≤ N ≤..

타겟넘버 🪅 모든 조합을 일일이 해야할 때(완전탐색), DFS로 구현할 수 있느냐 🪅 재귀함수를 사용할 때, 종료조건을 명시했느냐 class Solution { int result = 0; public void DFS(int[] numbers, int target, int index, int sum) { if(index == numbers.length) { if(sum == target) { result++; } return; } DFS(numbers, target, index+1, sum+numbers[index]); DFS(numbers, target, index+1, sum-numbers[index]); } public int solution(int[] numbers, int target) { in..

모음사전 🪅 keyPoint: 중복순열을 dfs로 구현할 수 있느냐 => 방문배열을 없애주면 된다. ⚠️ 배열 선언 및 초기화, String[] vowels = {"A", "E", "I", "O", "U"}; import java.util.*; class Solution { int answer = 0; String[] vowels = {"A", "E", "I", "O", "U"}; String[] wordBits; boolean go = true; public void dfs(int depth, String[] output) { if(depth == 5) return; for(int i = 0; i < 5; i++) { if(depth < wordBits.length) { output[depth] = v..