
CS/알고리즘2023. 8. 29. 11:29동적 계획법(Dynamic Programming)
1. 재귀 호출과 메모이제이션 문제 제시 : 토끼 수 구하기 문제의 내용만 달라졌을 뿐 사실 상 피보나치 f(n) = f(n-2) + f(n-1)이 성립 피보나치 수열 Fi : 피보나치 i번째 항을 구하는 함수 Fi : Fi-2 + Fi-1 → 재귀로 구현 fibo(n) IF n=2 AND memo[n] = 0 //0은 메모가 안된 상태를 의미 memo[n]
![[알고리즘] 너비 우선 탐색(BFS)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FnkM0P%2FbtspOC9mWT2%2FAAAAAAAAAAAAAAAAAAAAAHhPjlluEzNqiZxfJxo3irkLW6oE2Y3xf4IlOPqpcMkY%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1751295599%26allow_ip%3D%26allow_referer%3D%26signature%3D%252BjV2mj0VQi2i78caWG9h9moKYEI%253D)
CS/알고리즘2023. 8. 3. 23:40[알고리즘] 너비 우선 탐색(BFS)
1. BFS(너비 우선 탐색)그래프 탐색- 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것.- 알고리즘 문제를 풀다보면 2차원 배열이 주어지고 탐색을 하며 특정 값을 구하라는 문제가 많은데 DFS와 달리 시간복잡도가 까다롭게 설정되어있고 최단경로를 찾는 문제일 때 주로 사용.-동작과정큐 선언(2차원 배열이라면 Point 클래스를 활용) 및 시작 포인트 큐에 추가&&방문체크while(!Queue.isEmpty()) 큐가 없어질 때까지 반복Queue에서 poll하여 탐색 시작방향벡터를 이용해서 for문 4방탐색다음 행선지 NULL체크탈출 포인트 선언 (예를 들어 목적지 좌표에 도착했다면)장애물 및 탐색하면 안되는 곳이라면 continue로 탈출탐색할 수 있는 곳이라면 방문체크 및 큐..