전체 글
-
-
[DFS] 인접 행렬, 인접 리스트알고리즘 2023. 4. 19. 13:29
세가지 그래프 방향 그래프 무방향 그래프 가중치 그래프 인접 행렬 문제 유형 1) 방향그래프가 주어지고 1번에서 N번으로 가는 모든 경로의 가지 수를 구하시오. 필요 자료구조 - 중복 탐색을 방지하기 위한 check 배열, check 배열은 n+1 크기를 갖는다(1 ~ n) - 간선 설정을 위한 graph 2차원 배열(행, 열 모두 n+1 크기) - n개의 정점과, m개의 간선 수 설정 - 문제를 해결하기 위한 DFS 메서드 구현 로직 핵심 로직 public void DFS(int val){ if(val = n) answer++; else{ for(int i = 1; i
-
[SQL] WHERE과 HAVING의 차이database 2023. 4. 14. 17:22
WHERE과 HAVING 모두 조건을 설정한다는 특징에서 같다. 하지만, WHERE은 데이터들 중 조건에 맞는 행을 가져오면 반면 HAVING은 그룹화된 데이터들 중 조건에 맞는 특정 그룹을 가져온다. 예를 들어, 아래와 같은 orders 테이블이 존재할 때. order_id customer_id order_date total_amount 1 1 2022-01-01 100 2 2 2022-01-02 200 3 1 2022-01-03 150 4 3 2022-01-04 50 5 1 2022-01-05 80 WHERE 문 SELECT * FROM orders WHERE total_amount > 100; 결과 order_id customer_id order_date total_amount 2 2 2022-01..
-
[SQL] DISTINCT와 GROUP BY 차이database 2023. 4. 14. 16:47
DISTINCT와 GROUP BY는 둘 다 SELECT 쿼리에서 중복된 값을 제거하는 데 사용된다. 그러나 그들 간에는 중요한 차이점이 있다. DISTINCT는 SELECT 쿼리 결과에서 중복된 값을 제거하는 데 사용된다. 즉, 결과 집합에서 중복된 값을 제거하여 반환하는 것이다. 반면에 GROUP BY는 열 값을 그룹화하고 집계 함수 (SUM, AVG, COUNT 등)를 사용하여 그룹화된 결과를 반환하는 데 사용된다. 즉, 결과 집합을 그룹화하고 그룹화된 데이터의 집계 값을 계산하는 것이다. 아직 잘 이해가 되지 않는다. 예시 코드와 결과를 보면 쉽게 이해가 가능하다. 아래는 MySQL에서 DISTINCT와 GROUP BY를 사용하는 간단한 예시 코드이다. 예를 들어, 다음과 같은 "customers"..
-
[알고리즘] BFS(Breadth - First Search), 송아지 찾기알고리즘 2023. 4. 13. 15:31
BFS(Breadth-First Search) 알고리즘은 그래프 탐색을 위한 대표적인 알고리즘 중 하나이다. 그래프를 탐색하면서 같은 레벨에 있는 노드를 모두 방문한 후 다음 레벨로 이동하여 탐색하는 방법을 사용한다. 이 알고리즘은 그래프에서 최단 경로를 찾는 문제를 푸는 데 활용된다. BFS 알고리즘은 다음과 같이 동작한다. 시작 노드를 큐(queue)에 추가. 큐에서 노드를 하나 꺼내어 방문. 해당 노드와 인접한 노드들 중 방문하지 않은 노드를 모두 큐에 추가. 큐가 빌 때까지 2-3 단계를 반복. 이 알고리즘을 구현할 때는 큐를 사용하여 노드를 관리하며, 방문한 노드를 표시하기 위한 visited 배열을 사용. BFS 알고리즘의 시간 복잡도는 노드의 수를 V, 간선의 수를 E라고 할 때 O(V+E)..
-
[restful API] restful API가 필요한 데이터만 전송하는 방법, 애플리케이션 성능 향상rest api 2023. 4. 13. 12:30
RESTful API에서 필요한 데이터만 전송한다는 것은 클라이언트가 서버에 요청할 때, 클라이언트가 필요로 하는 데이터만 요청하는 것을 말한다. 이는 서버에서 불필요한 데이터를 제외하고 필요한 데이터만 응답하는 것을 의미한다. 예를 들어, 게시글 목록을 가져오는 API를 구현한다고 가정해보겠다. 게시글 정보는 제목, 작성일, 작성자 정보 등 여러 가지 속성을 가질 수 있다. 하지만 클라이언트가 필요한 것은 게시글의 제목과 작성일 뿐이라고 가정해보겠다. 이 경우, RESTful API에서는 서버에 요청할 때 게시글의 제목과 작성일에 대한 요청만을 보내고, 서버는 해당 요청에 대해 필요한 데이터만 응답하게 된다. 아래는 Java와 Spring Framework를 이용한 RESTful API 예시 코드이다...