반응형

recursive 3

[TIL] DFS 깊이 우선 탐색 BFS 너비 우선 탐색

그래프를 탐색하는 방법에는DFS 깊이 우선 탐색과 BFS 너비 우선 탐색이 있다 그래프에 대한 설명은 그래프 종류와 표현 방식에 정리해 놨다 1. DFSDepth-First Search, 깊이 우선 탐색 최대한 깊이 내려가고, 더 이상 깊이 내려갈 곳이 없을 경우 옆으로 이동모든 노드를 방문하는 경우에 사용한다 * 스택 또는 재귀를 이용해서 구현 시간 복잡도 - 인접 리스트 O(V+E), 인접 행렬 O(V^2)   DFS 기본 원칙"앞으로 찾아 가야할 노드" 와 "이미 방문한 노드" 를 기준으로 데이터 탐색한다경로 찾기, 탐색 문제, 백트래킹, 사이클 탐지 등에 유용하다 DFS 코드 구현탐색 순서1 - 2 - 4 - 5 - 3 - 6 4 방문 후 2로 백트래킹하여 5를 방문하고, 다시 2 - 1로 백트래..

TIL/Python 2024.09.21

[TIL] 재귀 함수 Recursion Function Python

하노이의 탑을 풀기 전에 재귀 함수의 개념 먼저 정리한다  재귀 Recursive 반복 Iterative   재귀 함수 Recursion Function 자기 자신을 다시 호출해 작업을 수행하는 방식자신의 로직을 내부적으로 반복단, '함수 자신' 이 아니라 자기 자신과 똑같은 함수'를 호출하는 것이다! 혼동 주의반복문으로 구현 가능한 로직은 모두 재귀함수로 구현이 가능하고 그 반대도 가능하다  * Base Case 더 이상 문제를 쪼갤 필요가 없는, 종료 조건에 도달한 경우* Recursive Case 문제를 작은 문제들로 나누어 해결하는 과정   + 09/18 WED 나중에 읽어봐야지 https://velog.io/@eddy_song/you-can-solve-recursion 예시01 팩토리얼 함수 1..

TIL/Python 2024.09.11

[백준] 1914 하노이의탑 Python

1. 문제세 개의 장대가 있고 첫 번째 장대에 반경이 서로 다른 n개의 원판이 반경이 큰 순서대로 쌓여있다. 아래 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮길 때 필요한 이동 순서를 출력하는 프로그램을 작성하라단, 이동 횟수는 최소가 되어야 한다 (원판의 개수는 1 1. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다2. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다   2. 알고리즘 분류* 임의 정밀도/ 큰 수 연산* 재귀 3. 접근 방식재귀 함수를 먼저 공부해야 한다왜냐하면 마지막 원판을 목표 기둥으로 보내기 위해서는 다른 원판들을 계속해서 옮겨야 하기 때문!쉽게 설명하자면, 나머지 원판들 (N-1) 은 임시 기둥 B 로 옮기고 제일 큰 원판 N 을 목표 기둥 C 로 보내고..

알고리즘 2024.09.10
반응형