2024/06 41

[JAVA] 백준 1068 트리_트리

문제 : https://www.acmicpc.net/problem/1068 접근 :    - 입력 받은 수를 배열에 넣는다.   - 지워야할 수를 저장한 후, 입력 받은 배열로 그래프를 만든다.  - 만약 배열의 인덱스나 배열의 값이 지워야할 수 이라면 그래프로 만들지 않고 다음 수로 넘어간다.  - root 와 지워야할 수가 같다면 0을 출력, 다르면 root 부터 리프노드의 수를 DFS 로 계산한다.  - 탐색이 끝나면 리프노드 수를 출력한다.  코드 구현 :  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.H..

JAVA/Coding Test 2024.06.28

[JAVA] 백준 11725 트리의 부모 찾기_트리

문제 : https://www.acmicpc.net/problem/11725  접근 :    - 입력되는 정보로 그래프를 작성   - 루트가 1 이므로 DFS를 통하여 1부터 인접한 노드의 부모 노드를 현재 수로 등록한다.   - 만약 인접 노드가 자신의 부모 노드일 경우 DFS를 실행하지 않는다.   - 부모 노드를 모두 등록하면 2부터 자신의 부모 노드를 출력한다.    코드 구현 :  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;public class Main { private static ArrayList[] adj; pri..

JAVA/Coding Test 2024.06.28

[JAVA] 프로그래머스 단속카메라_최소힙

문제 :https://school.programmers.co.kr/learn/courses/30/lessons/42884  접근 :   - 끝을 기준으로 최소힙에 넣는다.  - 한개 씩 차례대로 빼면서 다음의 시작 지점이 이전의 끝지점보다 큰 경우 끝지점을 갱신하고 정답에 1을 추가한다.  - 끝까지 진행 후 결과값을 출력한다.    코드 구현 :   import java.util.Collections;import java.util.PriorityQueue;class Solution { private static class Car implements Comparable{ int route_in; int route_out; public Car(int route_i..

JAVA/Coding Test 2024.06.27

[MySQL] B+tree

1. B+tree 란?   - B+tree는 데이터베이스와 파일 시스템에서 널리 사용되는 균형 잡힌 트리 자료 구조   - B+트리는 B-트리(B-tree)를 개선한 것( 인접한 자식 노드 끼리 링크드 리스트로 연결 )   - 큰 데이터 세트를 효율적으로 관리하는 데 유용  2. B+tree 특징   - 모든 실제 데이터는 리프 노드에만 저장, 내부 노드는 경로 탐색을 위한 인덱스 키 저장   - 리프 노드는 서로 링크드 리스트 형태로 연결( 범위 검색과 순차 접근이 효율적 )   - 트리는 삽입 및 삭제 시 자동으로 균형을 유지하여 검색, 삽입, 삭제의 시간 복잡도를 O(log n)으로 보장  3. B+tree 작동 방식   - 검색 : 루트 노드에서 시작하여 리프 노드까지 내려감, 내부 노드에서 키를..

DB/MySQL 2024.06.27

[MySQL] 인덱스

1. 인덱스란?   - 인덱스(index)는 데이터베이스 테이블의 열(또는 열의 집합)에 대해 검색 성능을 향상시키기 위해 사용 되는 데이터 구조   - 인덱스는 데이터를 보다 빠르게 검색하고 정렬하는 데 도움을 줌   - 인덱스는 책의 색인처럼 동작   - 특정 컬럼에 인덱스를 생성하면, MySQL은 그 컬럼의 값을 정렬된 데이터 구조(B+트리)로 저장   2. 인덱스의 종류   - PRIMARY KEY : 기본 키 인덱스, 테이블의 각 행을 고유하게 식별하는 데 사용( 테이블당 하나의 기본 키만 존재 )   - UNIQUE : 고유 인덱스, 해당 열의 모든 값이 고유함을 보장( 중복된 값을 허용하지 않음 )   - INDEX (또는 KEY) : 일반 인덱스, 검색 속도를 향상시키는 데 사용( 중복된 ..

DB/MySQL 2024.06.27

[JAVA] 백준 2688 줄어들지 않아_DP

문제 :https://www.acmicpc.net/problem/2688  접근 :   - n = 1,  dp[1] = 10, before = {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}  - n = 2, dp[2] = 10 - 0 + 10 - 1 + 9 - 1 + · · · + 2 - 1 , before = {0, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}  - n = 3, dp[3] = 55 - 0 + 55 - 10 + 45 - 9 + · · · + 2 - 1, before = {0, 55, 45,  36, 28, 21, 15, 10, 6, 3, 1} 즉 dp[n] = dp[n-1] - before[0] + (dp[n-1] - before[0]) - before[1] + ..

JAVA/Coding Test 2024.06.26

백준 9465 스티커_DP

문제 : https://www.acmicpc.net/problem/9465  접근 :   - 위쪽을 뜯는 경우와 아래쪽을 뜯는 경우를 나눠서 생각한다.  - 가로의 위치가 0 과 1 인 경우에는 나올 수 있는 최대값을 dp에 저장한다.  - 가로의 위치가 2 이상인 경우에는 위쪽과 아래쪽을 나눠서 현재 위치까지 도달했을 때, 가능한 최대값을 dp에 저장한다.  - 가로로 진행할 때, 항상 위쪽과 아래쪽을 나누어 더 큰 값으로 ans 값을 갱신한다.  - n-1 까지 진행한 후, ans 값을 출력한다.       코드구현 :  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public clas..

JAVA/Coding Test 2024.06.26

[MySQL] 스토어드 프로시저

1. 스토어드 프로시저란?   - 스토어드 프로시저(Stored Procedure)는 데이터베이스 관리 시스템(DBMS) 내에서 실행되는 하나 이상의 SQL 문장을 포함하는 프로그램   - 토어드 프로시저는 데이터베이스 작업을 더 효율적이고 안전하게 처리할 수 있는 강력한 도구   - 연산, 반복문, 조건문 등 다양하게 사용 가능  2. 스토어드 프로시저 장점    - 성능 향상    > 네트워크 트래픽 감소: 클라이언트와 서버 간의 통신이 줄어듭니다.    > 한 번의 호출로 여러 작업을 서버에서 수행   - 캐싱    > DBMS가 프로시저를 컴파일하고 캐시할 수 있어 반복 호출 시 성능이 향상   - 재사용성 및 유지보수성    > 재사용 가능 코드    > 데이터베이스 내에서 비즈니스 로직을 중앙..

DB/MySQL 2024.06.26

[MySQL] 함수

1. 함수란?   - MySQL에서 기본적으로 제공되는 내장 함수와 사용자 정의 함수로 나뉨   - 내장 함수는 문자열 함수, 수학 함수, 날짜 및 시간 함수 등으로 나눌 수 있음   - 사용자 정의 함수는 사용자가 직접 정의한 함수  2. 문자열 함수   - CONCAT() : 두 개 이상의 문자열을 하나로 연결     - CONCAT_WS() : 두 개 이상의 문자열을 구분자를 적용하여 하나로 연결     - LENGTH() : 문자열의 길이를 반환  3. 수학 함수   - ABS() : 주어진 숫자의 절대값을 반환     - ROUND() : 주어진 숫자를 지정된 소수점 자리로 반올림   4. 날짜 및 시간 함수  - NOW() : 현재 날짜와 시간을 반환     - DATEDIFF() : 두 날짜..

DB/MySQL 2024.06.26

[JAVA] 백준 1520 내리막길_DP

문제 :https://www.acmicpc.net/problem/1520  접근 1:   - BFS 로 결과 지점까지 도달하면 결과값 + 1  - Queue 가 빌 때까지 실행 후 출력  - 메모리 초과로 불가  접근 2:  - DP 와 DFS 를 이용하여 정답을 카운트  - 정답 지점까지 도달한 후, 시작 지점으로 돌아오면서 count 를 증가  - 시작 지점에 도달하면 count를 정답으로 출력  코드 구현 : import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { private static int[][] map; private static int[]..

JAVA/Coding Test 2024.06.25