목록종료조건 (5)
개발 무지렁이
모음사전 / 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) # ..
종이의 개수 🪅. 재귀를 이용해서 분할할 수 있는가 => 파라미터로 '시작좌표', 'size' 필요 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class B1780_종이의개수 { static int N; static int[][] arr2d; static int cntM1; static int cnt0; static int cnt1; public static boolean checkValid(int x, int y, int size) { int std = arr2d[x][y]; fo..
스택수열 🪅 각 반복문 종료조건을 명확히 알고있느냐, 종료조건을 넣을 알맞은 위치를 찾을 수 있느냐 🪅 반복문을 돌리고 나서, 스택에 데이터가 남아있다는 것이 의미하는 바를 아느냐 🪅 인덱스를 만들어야 할 때를 알고 있느냐 => 바깥쪽 for문에 영향을 주지 않기 위해서 🪅 출력이 많을 때 StringBuilder로 출력할 수 있느냐 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; /** * 백준 1874번 스택수열 * * 입력: * 첫 줄에 n (1 ≤ n ≤ 100,000)이 주어진다. 둘째 줄부터 n개의 줄에는 수열을 이루는 1이상 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..
그래프의 모든 노드를 탐색하는 DFS(Depth First Search) 1 -> 2 -> 4 -> 5 -> 3 -> 6 -> 7 시작노드에서 출발하여 리프노드까지 내려가고 부모에게 올라가, 다시 리프노드까지 내려가는 것을 반복하는 과정을 ' 깊이우선탐색(DFS) '라고 한다. 🕑 시간복잡도: O(V + E) (V: 노드 수, E: 간선 수) [모든 정점을 한 번씩 방문하고, 그러기 위해 모든 간선을 한 번씩 검사했으니] DFS와 재귀함수 DFS는 재귀함수로 구현하며, 재귀함수란 '자기 자신'을 Function call(함수 호출)하여 동작하는 방식을 말한다. (종료조건과 재귀적확장이 있어야 한다.)DFS 코드 구현, 백준 1260 DFS 🪅 에지리스트를 인접리스트로 구현할 수 있는가 🪅 ..