Java(70)
-
우선순위 큐
우선순위 큐?Priority Queue? 큐와 동일하게 FIFO 구조를 가지는데, 특이한점은 들어온 순서가 아닌 우선순위에 따라서 삽입/삭제 순서가 정해진다따로 정렬 기준을 정하지 않을경우, 오름차순으로 정렬이된다 (작은수가 우선순위)reverseOrder()를 사용하면 내림차순으로 정렬이된다 (큰 수가 우선순위) 우선순위 큐 특징높은 우선순위의 요소를 먼저 꺼내서 처리내부 요소는 힙으로 구성되어 이진트리 구조로 이루어짐힙으로 구성되어있어 시간복잡도는 O(NlogN)이다우선순위를 중요시할때 사용한다 우선순위큐 메서드선언)PriorityQueue [우선순위큐 이름] = new PriortyQueue();삽입add() / offer()을 사용하여 삽입add()는 가득차있으면, Exception 예외offer..
2024.11.06 -
[우선순위 큐]백준 11286번
문제1. 첫번째 입력값으로 연산의 개수 N이 주어진다 (1 2. 다음 N개의 줄에는 정수x가 주어진다3. x값이 0이 아니라면 배열에 x라는 값을 추가하고, x가 0이라면 배열에서 절대값이 가장 작은 값을 출력한다(단, 절대값이 같을경우 음수를 우선순위로 둔다)*2초이내 풀이 문제분석N의 최대 범위가 100,000이므로 O(nlogn)이 가능하다데이터가 새로 삽입될때마다 절대값과 관련된 정렬이 필요하므로 우선순위 큐를 이용하여 문제를 해결주의) 정렬기준은 직접 정의해야함 (절대값에 따른 값이 같은 경우 기준 설정 필요) 슈도코드N(질의 요청개수 입력)우선순위 큐 설정for(N만큼 반복){ 요청이 0일때, 비어있으면 0 출력 / 있으면 front 출력 (poll()) 요청이 0이 아닐때, que..
2024.11.06 -
[JDBC #3] 순수 JDBC와 트랜잭션 이해하기
1. 트랜잭션 ACID2. 트랜잭션 격리 수준3. DB 세션 이해하기4. 순수 JDBC 트랜잭션 사용기 트랜잭션 ACID원자성 (Atomicity)트랜잭션 내에서 실행한 작업들은 모두 성공하거나 모두 실패일관성 (Consistency)일관성 있는 데이터베이스 상태 유지 (무결성 제약 조건을 항상 만족)격리성 (Isolation)동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않아야함지속성 (Durability)트랜잭션을 성공적으로 끝내면 그결과가 항상 기록되어야함 트랜잭션 격리 수준READ UNCOMMITED (커밋되지 않은 읽기)READ COMMITTED (커밋된 읽기)REPEATABLE READ (반복 가능한 읽기)SERIALIZABLE (직렬화 가능)일반적으로, READ COMMITED(커밋된..
2024.11.05 -
[Queue] 클래스 설명 및 메서드
Queue?선입선출 (First In First Out)- 먼저 들어온 값을, 먼저 내보내는 자료구조 Queue 클래스public interface Queue extends Collection { boolean add(E e); boolean offer(E e); E remove(); E poll(); E element(); E peek();}메서드반환값설명add삽입 성공시 (true) / 실패시 (false)큐에 삽입offer삽입 성공시 (true) / 실패시 (false)큐에 삽입remove삭제된 value 반환,value 없으면 NoSuchElementException 반환큐에서 삭제poll삭제된 value 반환,value 없으면 null 반환큐에서 삭제elemen..
2024.11.04 -
[큐] 백준 2164번
문제N장의 카드가 존재 (순서가 순차적으로 카드개수만큼 존재)1. 1에서 N까지 번호가 존재2. 아래 동작으로 계속 반복 후 마지막 수를 출력 ( 순서 ) > 가장 위에 있는 카드를 바닥에 버림 > 그다음 가장 위에있는 카드를 마지막으로 옮김 > 이걸 반복정수 N ( 1 문제분석가장 위에있는 카드를 가장 마지막으로 이동 시키는 작업 ( -> Queue의 이해도 확인 )선입선출을 생각하여 문제 풀기 슈도코드N개 입력 받기for( 카드의 개수 ){ 큐에 카드 저장}while( 카드 1장이 남을때까지 ){ 맨위의 카드를 버림 맨위의 카드를 가장 아래의 카드 밑으로 이동}마지막으로 남은 카드 출력 구현import java.io.BufferedReader;import java..
2024.11.04 -
[JDBC #2] 순수 JDBC 이해하기
DB와 연결하기JDBC는 DB를 연결시켜주는 인터페이스 이므로, DB에 접근하기 위한 정보들이 필요하다DB의 주소 (Ex: URL), DB 접근 계정 정보 (Ex: ID / PASSWORD)들이 필요하다DriverManager 혹은 DataSource를 사용 (DriverManager를 활용한 JDBC를 사용해보고자 한다.) DriverManager의 장단점장점단점단순하고 직관적이다커넥션 풀 미지원 (매번 DB 연결/해제)외부 의존 없이 동작매번 연결/닫기를 수동으로 처리해야 한다JDBC 표준 API이므로 범용성 있음트랜잭션, 커넥션 재사용 등 고급 기능 부족DriverManager의 경우, 간단하거나 순수 JDBC를 연습할때는 사용할만하지만 커넥션을 매번 맺고 끊어야하기에 리소스 낭비가 발생할 수 있으..
2024.10.31