알고리즘 5

[알고리즘 개념]이진 탐색 알고리즘(Binary Search)

이진탐색은 정렬된 배열에서 특정 값을 찾는 알고리즘입니다. 이진탐색 알고리즘 구현 로직은 다음과 같습니다.배열의 중간 요소를 검사하고 목표값이 중간 값과 비교하여 검색 범위를 절반으로 줄여가며 작동합니다.시간복잡도:O(log n) 이진탐색 알고리즘은 반복문을 통한 이진 탐색과 재귀 함수를 사용한 이진 탐색이 있습니다.  반복문을 통한 이진탐색def binary_search_iterative(arr, target): left, right = 0, len(arr) - 1 while left  재귀함수를 이용한 이진탐색def binary_search_recursive(arr, target, left, right): if left > right: return -1 ..

[알고리즘 개념] BFS

BFS(Breadth-First Search) 에 대해 알아보겠습니다. 앞서 공부한 DFS와는 어떤 차이가 있는지 비교해보겠습니다.BFSDFS탐색 방식 : BFS는 시작 노드에서 출발해 인접 노드를 모두 탐색 후 다음 인접 노드를 탐색자료구조 : 큐/queue를 주로 사용합니다.경로탐색: 최단 경로를 찾는데 유리합니다.모든 간선의 가중치가 동일하면, BFS는 최단 경로를 보장탐색방식: 시작 노드에서 출발하여 한 노드의 인접노드를 탐색하고 그 노드의 인접 노드를 탐색하며 깊이 우선으로 탐색자료구조 :Stack 또는 재귀호출을 사용하여 구현경로 탐색: 특정 경로를 탐색하거나 연결 요소를 찾는데 유리합니다.특정 상황에서는 최단 경로를 보장하지 않습니다. BFS는 시작 노드에서 출발해 인접 노드를 모두 탐색 후..

[알고리즘 문제] BOJ 26169:세 번 이내에 사과를 먹자

DFS를 사용하여 푸는 문제입니다.https://devbob.tistory.com/2 그래프에서 노드를 탐색하는 알고리즘 중 하나-> 가능한 깊게 노드를 탐색,가능한 깊게 노드를 방문하고 더 " data-og-host="devbob.tistory.com" data-og-source-url="https://devbob.tistory.com/2" data-og-url="https://devbob.tistory.com/2" data-og-image="https://scrap.kakaocdn.net/dn/LxHCV/hyV2AjOWAP/ZKBLPHNIcckzYvZlKyAWm1/img.png?width=800&height=790&face=0_0_800_790,https://scrap.kakaocdn.net/dn/L..

[알고리즘 문제] BOJ 1388: 바닥장식

오늘 풀어본 문제는 백준 1388번 바닥장식 문제입니다.DFS 개념을 적용하여 문제를 풀 수 있습니다. https://devbob.tistory.com/2 그래프에서 노드를 탐색하는 알고리즘 중 하나-> 가능한 깊게 노드를 탐색,가능한 깊게 노드를 방문하고 더 " data-og-host="devbob.tistory.com" data-og-source-url="https://devbob.tistory.com/2" data-og-url="https://devbob.tistory.com/2" data-og-image="https://scrap.kakaocdn.net/dn/LxHCV/hyV2AjOWAP/ZKBLPHNIcckzYvZlKyAWm1/img.png?width=800&height=790&face=0_0_..

[알고리즘 개념] DFS

오늘 배워볼 주제는 DFS입니다.DFS란 무엇인가요? DFS(깊이 우선 탐색, Depth-First Search)-> 그래프에서 노드를 탐색하는 알고리즘 중 하나-> 가능한 깊게 노드를 탐색,가능한 깊게 노드를 방문하고 더 이상 방문할 노드가 없다면 이전으로 돌아가 다른 경로를 탐색한다.->주로 스택과 재귀함수를 사용한다.  DFS의 메커니즘은 다음과 같습니다. 1. 시작 노드를 스택에 삽입하고, 방문처리2. 스택의 최상단 노드의 인접노드가 방문처리가 되어 있지 않다면, 해당 노드를 스택에 넣고 방문처리를 한다.3. 방문하지 않은 인접 노드가 없다면 스택에서 해당 노드를 꺼낸다.4. 2와 3을 반복하여 모든 노드를 방문할때까지 계속한다.   그래프의 구현 방식1. 인접행렬2. 인접리스트 -인접행렬 - 2..