![[알고리즘] 이분 그래프(Bipartite Graph)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcLVMWi%2FbtsA9Vv3lNI%2FAAAAAAAAAAAAAAAAAAAAAGO0JJFCCbQuxxcpY7hx3xXvAu_y0sUTCekBu0UYIRMp%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3Da8QNce6xw3wulYmSDlGkCelBjdI%253D)
이분 그래프 조건 : 두 개의 색으로만 구분, 인접한 정점이 같은 색을 가지면 안됨. Concept 인접한 정점끼리 서로 다른 색으로 칠해서 모든 정점을 두 가지 색으로만 칠할 수 있는 그래프. 위 사진과 같이 두 개의 그룹으로 나누어지며, 같은 그룹의 정점은 인접하지 않음. 간선(E)이 아예 없고, 정점(V)만 있는 경우도 이분 그래프에 속함. Feature 주어진 그래프가 이분 그래프인지 확인하기 위해서는 BFS, DFS 탐색을 활용. 완전탐색의 일종으로 모든 정점을 방문하여 검사하기 때문에 O(V+E)의 시간복잡도를 가짐 인접 정점 간의 싸이클(Cycle)이 발생할 경우 홀수 싸이클의 경우 이분 그래프를 절대 만족 못함. Implement 너비 우선 탐색(BFS)를 활용한 탐색 1. 인접리스트를 활..

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%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DpG%252FhnyiJr1lt3jRjk4d%252B4CS891g%253D)
1. BFS(너비 우선 탐색)그래프 탐색- 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것.- 알고리즘 문제를 풀다보면 2차원 배열이 주어지고 탐색을 하며 특정 값을 구하라는 문제가 많은데 DFS와 달리 시간복잡도가 까다롭게 설정되어있고 최단경로를 찾는 문제일 때 주로 사용.-동작과정큐 선언(2차원 배열이라면 Point 클래스를 활용) 및 시작 포인트 큐에 추가&&방문체크while(!Queue.isEmpty()) 큐가 없어질 때까지 반복Queue에서 poll하여 탐색 시작방향벡터를 이용해서 for문 4방탐색다음 행선지 NULL체크탈출 포인트 선언 (예를 들어 목적지 좌표에 도착했다면)장애물 및 탐색하면 안되는 곳이라면 continue로 탈출탐색할 수 있는 곳이라면 방문체크 및 큐..
![[MySQL] View](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcOsSiM%2FbtrPEIhO60u%2FAAAAAAAAAAAAAAAAAAAAAJFAik66inq93UIabmCFijsa5TJ3rqsZFnkOhDG08TZ6%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DBrf3u3hSNIb11R8kniKPVyjUkzI%253D)
View : DataBase 내에서 '가상의 테이블'을 의미하며, 생성된 뷰는 기존의 테이블처럼 행과열의 데이터값을 가지는 테이블처럼 보이지만, 실제 테이블처럼 데이터들을 저장하고 있지는 않다. 특징잘 알려진 장점으로는1. 테이블 전체가 아닌 필요한 필드만을 보여주는 기능으로써 사용자에게 편리함을 제공한다.2. 특정 데이터 그리드를 만들기 위해 복잡한 쿼리들을 view를 통해 단순화 기능을 제공한다.3. 쿼리를 재사용 할 수 있다. 반대로 단점으로는1. 한번 만들어진 view는 변경이 불가능하다.2. 자신만의 인덱스를 가질 수 없으며,3. 해당 view에 관한 작업에 대한 제한사항을 많이 가진다. View의 활용view 생성에 앞서 이해를 돕기위해 간단하게 사용자의 이름과 나이 정보를 가지는 'view_..