분류 전체보기149 [JPA, DB] eager & lazy 1. eager & lazy 예시 eager Member 테이블과 Team 테이블이 있고 양방향 매핑 관계이며 ManyToOne이다. Member를 조회한다고 할때 eager라면 아래와 같이 쿼리가 나간다. Hibernate: select member0_.MEMBER_ID as MEMBER_I1_0_0_, member0_.TEAM_ID as TEAM_ID3_0_0_, member0_.USERNAME as USERNAME2_0_0_, team1_.TEAM_ID as TEAM_ID1_1_1_, team1_.name as name2_1_1_ from Member member0_ left outer join Team team1_ on member0_.TEAM_ID=team1_.TEAM_ID where membe.. 2024. 3. 13. [자료구조]B 트리, B+ 트리, B* 트리 1. 각 트리에 대한 요약 내용 B 트리 (B-Tree): B 트리는 균형 트리의 일종으로, 데이터를 정렬된 상태로 저장합니다. 각 노드에는 여러 키와 해당 키에 대응하는 값을 가질 수 있습니다. 각 노드는 키에 대한 오름차순으로 정렬된 배열을 가지며, 노드의 크기가 일정한 범위 내에 유지됩니다. B 트리는 데이터베이스 인덱스와 파일 시스템에서 널리 사용됩니다. 검색, 삽입 및 삭제 작업에 대해 대부분의 경우 O(log n)의 시간 복잡도를 제공합니다. B+ 트리 (B+ Tree) B+ 트리는 B 트리의 변형으로, 리프 노드만이 데이터를 저장하고 내부 노드는 키만을 저장합니다. 리프 노드는 연결 리스트로 연결되어 있습니다. 리프 노드는 외부 블록이므로 색인과는 달리 키를 찾는 데 사용됩니다. 이는 키에 .. 2024. 3. 13. [알고리즘] 장애물이 있을 때 최단거리 길 찾기 1. 문제 상황 설명 직사각형 형태의 필드에 시작위치에서 목표 위치로 가는길에 장애물이 있는경우 아래 예시 문제에서는 귀신이 따라와서 귀신보다 빨리 가야 한다. 즉 귀신보다 목표 위치가 가까워야 하며, 장애물까지 고려한경우 귀신보다 변위가 짧아야 한다. 처음에는 모든 경우를 계산하도록 재귀함수를 만들었으나 단순히 Queue를 이용하여 해결하였다. 시작점에서 상하좌우로 퍼져나간다. 퍼져나간 노드에서 다시 4방향으로 퍼져나간다. 한번 지나간 노드는 다시 지나가봤자 변위 손해이며 최단거리가 아니다. 2. 코드 작성 public class Main { public static void main(String[] args) throws IOException { //문제를 입력 받는다. BufferedReader b.. 2024. 2. 2. [알고리즘] 플로이드 와샬(Floyd-Warshall) 1. 플로이드 와샬 알고리즘 그래프의 모든 노드에서 다른 모든 노드까지 최단거리를 구하는 알고리즘 O(V^3)의 시간복잡도를 가졌다. 코드를 보면 알겠지만 3중 포문이 돌아간다. 매커니즘 j노드에서 k노드를 바로 가는 것과 i를 거쳐서 가는 것 중 비교를 계속 진행한다. 2. 문제와 코드 프로그래머스 배달 문제 참고 class Solution{ public int solution(int N, int[][] road, int K) { int answer = 0; //거리 비용을 2차원 배열에 정리 int[][] costs = new int[N][N]; for (int i = 0; i < costs.length; i++) { Arrays.fill(costs[i], 500001); costs[i][i] = 0.. 2024. 1. 31. 이전 1 ··· 10 11 12 13 14 15 16 ··· 38 다음